09 May, 2013

2 commits

  • Pull InfiniBand/RDMA changes from Roland Dreier:
    - XRC transport fixes
    - Fix DHCP on IPoIB
    - mlx4 preparations for flow steering
    - iSER fixes
    - miscellaneous other fixes

    * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (23 commits)
    IB/iser: Add support for iser CM REQ additional info
    IB/iser: Return error to upper layers on EAGAIN registration failures
    IB/iser: Move informational messages from error to info level
    IB/iser: Add module version
    mlx4_core: Expose a few helpers to fill DMFS HW strucutures
    mlx4_core: Directly expose fields of DMFS HW rule control segment
    mlx4_core: Change a few DMFS fields names to match firmare spec
    mlx4: Match DMFS promiscuous field names to firmware spec
    mlx4_core: Move DMFS HW structs to common header file
    IB/mlx4: Set link type for RAW PACKET QPs in the QP context
    IB/mlx4: Disable VLAN stripping for RAW PACKET QPs
    mlx4_core: Reduce warning message for SRQ_LIMIT event to debug level
    RDMA/iwcm: Don't touch cmid after dropping reference
    IB/qib: Correct qib_verbs_register_sysfs() error handling
    IB/ipath: Correct ipath_verbs_register_sysfs() error handling
    RDMA/cxgb4: Fix SQ allocation when on-chip SQ is disabled
    SRPT: Fix odd use of WARN_ON()
    IPoIB: Fix ipoib_hard_header() return value
    RDMA: Rename random32() to prandom_u32()
    RDMA/cxgb3: Fix uninitialized variable
    ...

    Linus Torvalds
     
  • Roland Dreier
     

08 May, 2013

2 commits

  • Faster kernel compiles by way of fewer unnecessary includes.

    [akpm@linux-foundation.org: fix fallout]
    [akpm@linux-foundation.org: fix build]
    Signed-off-by: Kent Overstreet
    Cc: Zach Brown
    Cc: Felipe Balbi
    Cc: Greg Kroah-Hartman
    Cc: Mark Fasheh
    Cc: Joel Becker
    Cc: Rusty Russell
    Cc: Jens Axboe
    Cc: Asai Thambi S P
    Cc: Selvan Mani
    Cc: Sam Bradshaw
    Cc: Jeff Moyer
    Cc: Al Viro
    Cc: Benjamin LaHaise
    Reviewed-by: "Theodore Ts'o"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kent Overstreet
     
  • Use preferable function name which implies using a pseudo-random number
    generator.

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

02 May, 2013

5 commits

  • Annex A12 of the IBTA spec defines additional information that needs
    to be provided through the CM exchange relating to usage of ZBVA (Zero
    Based VAs) and Send With Invalidate over an iSER connection.

    Currently, the initiator sets both to not supported, but does provide
    the header so that existing iSER targets can be patched to start
    looking on the private data carried by the CM.

    This is a preparation step to enable iSER with HW drivers for which
    FMRs are not supported, such as mlx4 VF instances or new HW devices
    which might support only FRWR (Fast Registration Work-Requests) along
    the details of the IB_DEVICE_MEM_MGT_EXTENSIONS device capability.

    Signed-off-by: Or Gerlitz
    Signed-off-by: Roland Dreier

    Or Gerlitz
     
  • Commit 819a087316a6 ("IB/iser: Avoid error prints on EAGAIN
    registration failures") not only eliminated the error print on that
    case, but rather also modified the code such that it doesn't return
    any error to upper layers. As a result a wrong mapping was used. Fix
    this to correctly return the error in that case.

    Signed-off-by: Or Gerlitz
    Signed-off-by: Roland Dreier

    Or Gerlitz
     
  • Introduce iser_info() and move informational messages that were
    printed as errors to use that macro. Also, cleanup printk leftovers to
    use the existing macros.

    Signed-off-by: Roi Dayan
    Signed-off-by: Or Gerlitz

    [ Use pr_warn(... instead of printk(KERN_WARNING .... - Roland ]

    Signed-off-by: Roland Dreier

    Roi Dayan
     
  • Add displaying module version, update the version to 1.1,
    and remove the DRV_DATE define.

    Signed-off-by: Roi Dayan
    Signed-off-by: Or Gerlitz
    Signed-off-by: Roland Dreier

    Roi Dayan
     
  • Pull networking updates from David Miller:
    "Highlights (1721 non-merge commits, this has to be a record of some
    sort):

    1) Add 'random' mode to team driver, from Jiri Pirko and Eric
    Dumazet.

    2) Make it so that any driver that supports configuration of multiple
    MAC addresses can provide the forwarding database add and del
    calls by providing a default implementation and hooking that up if
    the driver doesn't have an explicit set of handlers. From Vlad
    Yasevich.

    3) Support GSO segmentation over tunnels and other encapsulating
    devices such as VXLAN, from Pravin B Shelar.

    4) Support L2 GRE tunnels in the flow dissector, from Michael Dalton.

    5) Implement Tail Loss Probe (TLP) detection in TCP, from Nandita
    Dukkipati.

    6) In the PHY layer, allow supporting wake-on-lan in situations where
    the PHY registers have to be written for it to be configured.

    Use it to support wake-on-lan in mv643xx_eth.

    From Michael Stapelberg.

    7) Significantly improve firewire IPV6 support, from YOSHIFUJI
    Hideaki.

    8) Allow multiple packets to be sent in a single transmission using
    network coding in batman-adv, from Martin Hundebøll.

    9) Add support for T5 cxgb4 chips, from Santosh Rastapur.

    10) Generalize the VXLAN forwarding tables so that there is more
    flexibility in configurating various aspects of the endpoints.
    From David Stevens.

    11) Support RSS and TSO in hardware over GRE tunnels in bxn2x driver,
    from Dmitry Kravkov.

    12) Zero copy support in nfnelink_queue, from Eric Dumazet and Pablo
    Neira Ayuso.

    13) Start adding networking selftests.

    14) In situations of overload on the same AF_PACKET fanout socket, or
    per-cpu packet receive queue, minimize drop by distributing the
    load to other cpus/fanouts. From Willem de Bruijn and Eric
    Dumazet.

    15) Add support for new payload offset BPF instruction, from Daniel
    Borkmann.

    16) Convert several drivers over to mdoule_platform_driver(), from
    Sachin Kamat.

    17) Provide a minimal BPF JIT image disassembler userspace tool, from
    Daniel Borkmann.

    18) Rewrite F-RTO implementation in TCP to match the final
    specification of it in RFC4138 and RFC5682. From Yuchung Cheng.

    19) Provide netlink socket diag of netlink sockets ("Yo dawg, I hear
    you like netlink, so I implemented netlink dumping of netlink
    sockets.") From Andrey Vagin.

    20) Remove ugly passing of rtnetlink attributes into rtnl_doit
    functions, from Thomas Graf.

    21) Allow userspace to be able to see if a configuration change occurs
    in the middle of an address or device list dump, from Nicolas
    Dichtel.

    22) Support RFC3168 ECN protection for ipv6 fragments, from Hannes
    Frederic Sowa.

    23) Increase accuracy of packet length used by packet scheduler, from
    Jason Wang.

    24) Beginning set of changes to make ipv4/ipv6 fragment handling more
    scalable and less susceptible to overload and locking contention,
    from Jesper Dangaard Brouer.

    25) Get rid of using non-type-safe NLMSG_* macros and use nlmsg_*()
    instead. From Hong Zhiguo.

    26) Optimize route usage in IPVS by avoiding reference counting where
    possible, from Julian Anastasov.

    27) Convert IPVS schedulers to RCU, also from Julian Anastasov.

    28) Support cpu fanouts in xt_NFQUEUE netfilter target, from Holger
    Eitzenberger.

    29) Network namespace support for nf_log, ebt_log, xt_LOG, ipt_ULOG,
    nfnetlink_log, and nfnetlink_queue. From Gao feng.

    30) Implement RFC3168 ECN protection, from Hannes Frederic Sowa.

    31) Support several new r8169 chips, from Hayes Wang.

    32) Support tokenized interface identifiers in ipv6, from Daniel
    Borkmann.

    33) Use usbnet_link_change() helper in USB net driver, from Ming Lei.

    34) Add 802.1ad vlan offload support, from Patrick McHardy.

    35) Support mmap() based netlink communication, also from Patrick
    McHardy.

    36) Support HW timestamping in mlx4 driver, from Amir Vadai.

    37) Rationalize AF_PACKET packet timestamping when transmitting, from
    Willem de Bruijn and Daniel Borkmann.

    38) Bring parity to what's provided by /proc/net/packet socket dumping
    and the info provided by netlink socket dumping of AF_PACKET
    sockets. From Nicolas Dichtel.

    39) Fix peeking beyond zero sized SKBs in AF_UNIX, from Benjamin
    Poirier"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1722 commits)
    filter: fix va_list build error
    af_unix: fix a fatal race with bit fields
    bnx2x: Prevent memory leak when cnic is absent
    bnx2x: correct reading of speed capabilities
    net: sctp: attribute printl with __printf for gcc fmt checks
    netlink: kconfig: move mmap i/o into netlink kconfig
    netpoll: convert mutex into a semaphore
    netlink: Fix skb ref counting.
    net_sched: act_ipt forward compat with xtables
    mlx4_en: fix a build error on 32bit arches
    Revert "bnx2x: allow nvram test to run when device is down"
    bridge: avoid OOPS if root port not found
    drivers: net: cpsw: fix kernel warn on cpsw irq enable
    sh_eth: use random MAC address if no valid one supplied
    3c509.c: call SET_NETDEV_DEV for all device types (ISA/ISAPnP/EISA)
    tg3: fix to append hardware time stamping flags
    unix/stream: fix peeking with an offset larger than data in queue
    unix/dgram: fix peeking with an offset larger than data in queue
    unix/dgram: peek beyond 0-sized skbs
    openvswitch: Remove unneeded ovs_netdev_get_ifindex()
    ...

    Linus Torvalds
     

01 May, 2013

1 commit

  • Pull SCSI target update from Nicholas Bellinger:
    "The highlights this round include:

    - Add fileio support for WRITE_SAME w/ UNMAP=1 discard (asias)
    - Add fileio support for UNMAP discard (asias)
    - Add tcm_vhost hotplug support to work with upstream QEMU
    vhost-scsi-pci code (asias + mst)
    - Check for aborted sequence in tcm_fc response path (mdr)
    - Add initial iscsit_transport support into iscsi-target code (nab)
    - Refactor iscsi-target RX PDU logic + export request PDU handling
    (nab)
    - Refactor iscsi-target TX queue logic + export response PDU creation
    (nab)
    - Add new iSCSI Extentions for RDMA (ISER) target driver (Or + nab)

    The biggest changes revolve around iscsi-target refactoring in order
    to support the iser-target driver. This includes the conversion of
    the iscsi-target data-path to use modern se_cmd->cmd_kref counting,
    and allowing transport independent aspects of RX/TX PDU
    request/response handling be shared across existing traditional
    iscsi-target code, and the new iser-target code.

    Thanks to Or Gerlitz + Mellanox for supporting the iser-target
    development effort!"

    * 'for-next-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (25 commits)
    iser-target: Add iSCSI Extensions for RDMA (iSER) target driver
    tcm_vhost: Enable VIRTIO_SCSI_F_HOTPLUG
    tcm_vhost: Add ioctl to get and set events missed flag
    tcm_vhost: Add hotplug/hotunplug support
    tcm_vhost: Refactor the lock nesting rule
    tcm_fc: Check for aborted sequence
    iscsi-target: Add iser network portal attribute
    iscsi-target: Refactor TX queue logic + export response PDU creation
    iscsi-target: Refactor RX PDU logic + export request PDU handling
    iscsi-target: Add per transport iscsi_cmd alloc/free
    iscsi-target: Add iser-target parameter keys + setup during login
    iscsi-target: Initial traditional TCP conversion to iscsit_transport
    iscsi-target: Add iscsit_transport API template
    target: Add export of target_get_sess_cmd symbol
    target: Change default sense key of NOT_READY
    target/file: Set is_nonrot attribute
    target: Add sbc_execute_unmap() helper
    target/iblock: Add iblock_do_unmap() helper
    target/file: Add fd_do_unmap() helper
    target/file: Add UNMAP emulation support
    ...

    Linus Torvalds
     

30 Apr, 2013

2 commits


25 Apr, 2013

5 commits

  • This patch adds support for iSCSI Extensions for RDMA target mode,
    and includes CQ pooling per isert_device context distributed across
    multiple active iser target sessions.

    It also uses cmwq process context for RX / TX ib_post_cq() polling
    via isert_cq_desc->cq_[rx,tx]_work invoked by isert_cq_[rx,tx]_callback()
    hardIRQ context callbacks.

    v5 changes:

    - Use ISER_RECV_DATA_SEG_LEN instead of hardcoded value in ISER_RX_PAD_SIZE (Or)
    - Fix make W=1 warnings (Or)
    - Add missing depends on NET && INFINIBAND_ADDR_TRANS in Kconfig (Randy + Or)
    - Make isert_device_find_by_ib_dev() return proper ERR_PTR (Wei Yongjun)
    - Properly setup iscsi_np->np_sockaddr in isert_setup_np() (Shlomi + nab)
    - Add special case for early ISCSI_OP_SCSI_CMD exception handling (nab)

    v4 changes:
    - Mark isert_cq_rx_work as static (Or)
    - Drop unnecessary ib_dma_sync_single_for_cpu + ib_dma_sync_single_for_device
    calls for isert_cmd->sense_buf_dma from isert_put_response (Or)
    - Use 12288 for ISER_RX_PAD_SIZE base to save extra page per
    struct iser_rx_desc (Or + nab)
    - Drop now unnecessary isert_rx_desc usage, and convert RX users to
    iser_rx_desc (Or + nab)
    - Move isert_[alloc,free]_rx_descriptors() ahead of
    isert_create_device_ib_res() usage (nab)
    - Mark isert_cq_[rx,tx]_callback() + prototypes as static
    - Fix 'warning: 'ret' may be used uninitialized' warning for
    isert_create_device_ib_res on powerpc allmodconfig (fengguang + nab)
    - Fix 'warning: 'ret' may be used uninitialized' warning for
    isert_connect_request on i386 allyesconfig (fengguang + nab)
    - Fix pr_debug conversion specification in isert_rx_completion()
    (fengguang + nab)
    - Drop unnecessary isert_conn->conn_cm_id != NULL check in
    isert_connect_release causing the build warning:
    "variable dereferenced before check 'isert_conn->conn_cm_id'"
    - Fix isert_lid + isert_np leak in isert_setup_np failure path
    - Add isert_conn->conn_wait_comp_err usage in isert_free_conn()
    for isert_cq_comp_err completion path
    - Add isert_conn->logout_posted bit to determine decrement of
    isert_conn->post_send_buf_count from logout response completion
    - Always set ISER_CONN_DOWN from isert_disconnect_work() callback

    v3 changes:

    - Convert to use per isert_cq_desc->cq_[rx,tx]_work + drop tasklets (Or + nab)
    - Move IB_EVENT_QP_LAST_WQE_REACHED warn into correct
    isert_qp_event_callback (Or)
    - Drop unnecessary IB_ACCESS_REMOTE_* access flag usage in
    isert_create_device_ib_res (Or)
    - Add common isert_init_send_wr(), and convert isert_put_* calls (Or)
    - Move to verbs+core logic to single ib_isert.[c,h] (Or + nab)
    - Add kmem_cache isert_cmd_cache usage for descriptor allocation (nab)
    - Move common ib_post_send() logic used by isert_put_*() to
    isert_post_response() (nab)
    - Add isert_put_reject call in isert_response_queue() for posting
    ISCSI_REJECT response. (nab)
    - Add ISTATE_SEND_REJECT checking in isert_do_control_comp. (nab)

    v2 changes:

    - Drop unused ISERT_ADDR_ROUTE_TIMEOUT define
    - Add rdma_notify() call for IB_EVENT_COMM_EST in isert_qp_event_callback()
    - Make isert_query_device() less verbose
    - Drop unused RDMA_CM_EVENT_ADDR_ERROR and RDMA_CM_EVENT_ROUTE_ERROR
    cases from isert_cma_handler()
    - Drop unused rdma/ib_fmr_pool.h include
    - Update isert_conn_setup_qp() to assign cq based upon least used
    - Add isert_create_device_ib_res() to setup PD, CQs and MRs for each
    underlying struct ib_device, instead of using per isert_conn resources.
    - Add isert_free_device_ib_res() to release PD, CQs and MRs for each
    underlying struct ib_device.
    - Add isert_device_find_by_ib_dev()
    - Change isert_connect_request() to drop PD, CQs and MRs allocation,
    and use isert_device_find_by_ib_dev() instead.
    - Add isert_device_try_release()
    - Change isert_connect_release() to decrement cq_active_qps, and drop
    PD, CQs and MRs resource release.
    - Update isert_connect_release() to call isert_device_try_release()
    - Make isert_create_device_ib_res() determine device->cqs_used based
    upon num_online_cpus()
    - Drop misleading isert_dump_ib_wc() usage
    - Drop unused rdma/ib_fmr_pool.h include
    - Use proper xfer_len for login PDUs in isert_rx_completion()
    - Add isert_release_cmd() usage
    - Change isert_alloc_cmd() to setup iscsi_cmd.release_cmd() pointer
    - Change isert_put_cmd() to perform per iscsi_opcode specific release
    logic
    - Add isert_unmap_cmd() call for ISCSI_OP_SCSI_CMD from isert_put_cmd()
    - Change isert_send_completion() to call
    atomic_dec(&isert_conn->post_send_buf_count)
    based upon per iscsi_opcode logic
    - Drop ISTATE_REMOVE processing from isert_immediate_queue()
    - Drop ISTATE_SEND_DATAIN processing from isert_response_queue()
    - Drop ISTATE_SEND_STATUS processing from isert_response_queue()
    - Drop iscsit_transport->iscsit_unmap_cmd() and ->iscsit_free_cmd()
    - Convert iser_cq_tx_tasklet() to use struct isert_cq_desc pooling logic
    - Convert isert_cq_tx_callback() to use struct isert_cq_desc pooling
    logic
    - Convert iser_cq_rx_tasklet() to use struct isert_cq_desc pooling logic
    - Convert isert_cq_rx_callback() to use struct isert_cq_desc pooling
    logic
    - Add explict iscsit_stop_dataout_timer() call to
    isert_do_rdma_read_comp()
    - Use isert_get_dataout() for iscsit_transport->iscsit_get_dataout()
    caller
    - Drop ISTATE_SEND_R2T processing from isert_immediate_queue()
    - Drop unused rdma/ib_fmr_pool.h include
    - Drop isert_cmd->cmd_kref in favor of se_cmd->cmd_kref usage
    - Add struct isert_device in order to support multiple EQs + CQ pooling
    - Add struct isert_cq_desc
    - Drop tasklets and cqs from isert_conn
    - Bump ISERT_MAX_CQ to 64
    - Various minor checkpatch fixes

    Signed-off-by: Or Gerlitz
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     
  • When the link type is Ethernet, setting the link type in the QP
    context will enable TCP/IP stateless offloads (checksum, LSO, RSS) for
    RAW PACKET Ethernet QPs. For IB UD QPs this worked OK since the value
    assumed by the firmware for IB link layer is zero.

    Signed-off-by: Eli Cohen
    Signed-off-by: Or Gerlitz
    Signed-off-by: Roland Dreier

    Eli Cohen
     
  • Fix the asymmetric behavior w.r.t VLAN insertion/stripping for RAW
    PACKET QPs -- we don't insert on send and need not strip on receive.

    Signed-off-by: Dotan Barak
    Signed-off-by: Or Gerlitz
    Signed-off-by: Roland Dreier

    Dotan Barak
     
  • The function cm_work_handler() cannot touch the cm_id after it derefs
    it, because it might be freed on another concurrent thread. If there
    are more work items queued for this cm_id, then we know there must be
    more references because they are added when the work items are queued.
    So in the while loop inside cm_work_handler(), after derefing, if the
    queue is empty, then exit the function. Otherwise we know it's safe
    to re-acquire the lock.

    Signed-off-by: Steve Wise
    Signed-off-by: Roland Dreier

    Steve Wise
     
  • The patch allows to enable/disable HW timestamping for incoming and/or
    outgoing packets. It adds and initializes all structs and callbacks
    needed by kernel TS API.
    To enable/disable HW timestamping appropriate ioctl should be used.
    Currently HWTSTAMP_FILTER_ALL/NONE and HWTSAMP_TX_ON/OFF only are
    supported.
    When enabling TS on receive flow - VLAN stripping will be disabled.
    Also were made all relevant changes in RX/TX flows to consider TS request
    and plant HW timestamps into relevant structures.
    mlx4_ib was fixed to compile with new mlx4_cq_alloc() signature.

    Signed-off-by: Eugenia Emantayev
    Signed-off-by: Amir Vadai
    Signed-off-by: David S. Miller

    Amir Vadai
     

20 Apr, 2013

2 commits


18 Apr, 2013

1 commit

  • Support TIPC in the IPoIB driver. Since IPoIB now keeps track of its own
    neighbour entries and doesn't require the packet to have a dst_entry
    anymore, the only necessary changes are to:

    - not drop multicast TIPC packets because of the unknown ethernet type
    - handle unicast TIPC packets similar to IPv4/IPv6 unicast packets

    in ipoib_start_xmit().

    An alternative would be to remove all ethertype limitations since they're
    not necessary anymore, all TIPC needs to know about is ARP and RARP since
    it wants to always perform "path find", even if a path is already known.

    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     

17 Apr, 2013

9 commits

  • qib_verbs_register_sysfs() never cleans up from a failure.
    Additionally, the caller of qib_verbs_register_sysfs() doesn't
    return the correct "ret" value.

    This patch resolves both of those issues.

    Reported-by: Wei Yongjun
    Reviewed-by: Dean Luick

    Signed-off-by: Mike Marciniszyn
    Signed-off-by: Roland Dreier

    Mike Marciniszyn
     
  • ipath_verbs_register_sysfs() never returned the correct error
    code from device_create_file and never cleaned up from a failure.
    Additionally, the caller of ipath_verbs_register_sysfs() doesn't
    return the correct "ret" value.

    This patch resolves all of these issues.

    Reported-by: Wei Yongjun
    Reviewed-by: Dean Luick
    Signed-off-by: Mike Marciniszyn
    Signed-off-by: Roland Dreier

    Mike Marciniszyn
     
  • Commit c079c28714e4 ("RDMA/cxgb4: Fix error handling in create_qp()")
    broke SQ allocation. Instead of falling back to host allocation when
    on-chip allocation fails, it tries to allocate both. And when it
    does, and we try to free the address from the genpool using the host
    address, we hit a BUG and the system crashes as below.

    We create a new function that has the previous behavior and properly
    propagate the error, as intended.

    kernel BUG at /usr/src/packages/BUILD/kernel-ppc64-3.0.68/linux-3.0/lib/genalloc.c:340!
    Oops: Exception in kernel mode, sig: 5 [#1]
    SMP NR_CPUS=1024 NUMA pSeries
    Modules linked in: rdma_ucm rdma_cm ib_addr ib_cm iw_cm ib_sa ib_mad ib_uverbs iw_cxgb4 ib_core ip6t_LOG xt_tcpudp xt_pkttype ipt_LOG xt_limit ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_raw xt_NOTRACK ipt_REJECT xt_state iptable_raw iptable_filter ip6table_mangle nf_conntrack_netbios_ns nf_conntrack_broadcast nf_conntrack_ipv4 nf_conntrack nf_defrag_ipv4 ip_tables ip6table_filter ip6_tables x_tables fuse loop dm_mod ipv6 ipv6_lib sr_mod cdrom ibmveth(X) cxgb4 sg ext3 jbd mbcache sd_mod crc_t10dif scsi_dh_emc scsi_dh_hp_sw scsi_dh_alua scsi_dh_rdac scsi_dh ibmvscsic(X) scsi_transport_srp scsi_tgt scsi_mod
    Supported: Yes
    NIP: c00000000037d41c LR: d000000003913824 CTR: c00000000037d3b0
    REGS: c0000001f350ae50 TRAP: 0700 Tainted: G X (3.0.68-0.9-ppc64)
    MSR: 8000000000029032 CR: 24042482 XER: 00000001
    TASK = c0000001f6f2a840[3616] 'rping' THREAD: c0000001f3508000 CPU: 0
    GPR00: c0000001f6e875c8 c0000001f350b0d0 c000000000fc9690 c0000001f6e875c0
    GPR04: 00000000000c0000 0000000000010000 0000000000000000 c0000000009d482a
    GPR08: 000000006a170000 0000000000100000 c0000001f350b140 c0000001f6e875c8
    GPR12: d000000003915dd0 c000000003f40000 000000003e3ecfa8 c0000001f350bea0
    GPR16: c0000001f350bcd0 00000000003c0000 0000000000040100 c0000001f6e74a80
    GPR20: d00000000399a898 c0000001f6e74ac8 c0000001fad91600 c0000001f6e74ab0
    GPR24: c0000001f7d23f80 0000000000000000 0000000000000002 000000006a170000
    GPR28: 000000000000000c c0000001f584c8d0 d000000003925180 c0000001f6e875c8
    NIP [c00000000037d41c] .gen_pool_free+0x6c/0xf8
    LR [d000000003913824] .c4iw_ocqp_pool_free+0x8c/0xd8 [iw_cxgb4]
    Call Trace:
    [c0000001f350b0d0] [c0000001f350b180] 0xc0000001f350b180 (unreliable)
    [c0000001f350b170] [d000000003913824] .c4iw_ocqp_pool_free+0x8c/0xd8 [iw_cxgb4]
    [c0000001f350b210] [d00000000390fd70] .dealloc_sq+0x90/0xb0 [iw_cxgb4]
    [c0000001f350b280] [d00000000390fe08] .destroy_qp+0x78/0xf8 [iw_cxgb4]
    [c0000001f350b310] [d000000003912738] .c4iw_destroy_qp+0x208/0x2d0 [iw_cxgb4]
    [c0000001f350b460] [d000000003861874] .ib_destroy_qp+0x5c/0x130 [ib_core]
    [c0000001f350b510] [d0000000039911bc] .ib_uverbs_cleanup_ucontext+0x174/0x4f8 [ib_uverbs]
    [c0000001f350b5f0] [d000000003991568] .ib_uverbs_close+0x28/0x70 [ib_uverbs]
    [c0000001f350b670] [c0000000001e7b2c] .__fput+0xdc/0x278
    [c0000001f350b720] [c0000000001a9590] .remove_vma+0x68/0xd8
    [c0000001f350b7b0] [c0000000001a9720] .exit_mmap+0x120/0x160
    [c0000001f350b8d0] [c0000000000af330] .mmput+0x80/0x160
    [c0000001f350b960] [c0000000000b5d0c] .exit_mm+0x1ac/0x1e8
    [c0000001f350ba10] [c0000000000b8154] .do_exit+0x1b4/0x4b8
    [c0000001f350bad0] [c0000000000b84b0] .do_group_exit+0x58/0xf8
    [c0000001f350bb60] [c0000000000ce9f4] .get_signal_to_deliver+0x2f4/0x5d0
    [c0000001f350bc60] [c000000000017ee4] .do_signal_pending+0x6c/0x3e0
    [c0000001f350bdb0] [c0000000000182cc] .do_signal+0x74/0x78
    [c0000001f350be30] [c000000000009e74] do_work+0x24/0x28

    Signed-off-by: Thadeu Lima de Souza Cascardo
    Cc: Emil Goode
    Cc:
    Acked-by: Steve Wise
    Signed-off-by: Roland Dreier

    Thadeu Lima de Souza Cascardo
     
  • While WARN_ON("const string") will work, it's intent is not obvious.
    The warning is more useful by showing the "state" value.

    Signed-off-by: Grant Grundler
    Signed-off-by: Roland Dreier

    Grant Grundler
     
  • If you have a patched up dhcp server (and dhclient), they will use
    AF_PACKET/SOCK_DGRAM pair to send dhcp packets over IPoIB.

    However, when testing an upstream kernel, this has been broken for a
    very long time (I tested 2.6.34, 2.6.38, 3.0, 3.1, 3.8, HEAD).

    It turns out that the hard_header routine in ipoib is not following
    the API and is returning 0 even when it pushed data onto the skb.
    This then causes af_packet.c to overwrite the header just pushed with
    data from user space.

    Fixing this gets DHCP working on IPoIB.

    Signed-off-by: Doug Ledford
    Signed-off-by: Roland Dreier

    Doug Ledford
     
  • Use more preferable function name which implies using a pseudo-random
    number generator.

    Signed-off-by: Akinobu Mita
    Reviewed-by: Steve Wise
    Cc: Roland Dreier
    Cc: Sean Hefty
    Cc: Hal Rosenstock
    Cc: Steve Wise
    Cc: linux-rdma@vger.kernel.org
    Reviewed-by: Steve Wise
    Signed-off-by: Roland Dreier

    Akinobu Mita
     
  • The variable npages might be used uninitialized.

    Signed-off-by: Cong Ding
    Acked-by: Steve Wise
    Signed-off-by: Roland Dreier

    Cong Ding
     
  • An XRC target QP may redirect to more than one XRC SRQ. This means
    that for work completions associated with a XRC TGT QP, the srq field
    in the QP has no usage and the real XRC SRQ need to be retrived using
    the information from the XRCETH placed into the CQE, do that.

    Signed-off-by: Shlomo Pongratz
    Signed-off-by: Or Gerlitz
    Signed-off-by: Roland Dreier

    Shlomo Pongratz
     
  • For QPs of type IB_QPT_XRC_TGT the IB core assigns a common event
    handler __ib_shared_qp_event_handler(), and the optionally supplied
    event handler is stored. When the common handler is called it iterates
    on all opened QPs and calles the original handlers without checking if
    they are NULL. Fix that.

    Signed-off-by: Shlomo Pongratz
    Signed-off-by: Or Gerlitz
    Signed-off-by: Roland Dreier

    Shlomo Pongratz
     

08 Apr, 2013

1 commit


06 Apr, 2013

1 commit

  • Commit e2eed58b4fbf ("IB/qib: change QLogic to Intel") moved a firmware
    file potentially breaking the ABI.

    This patch reverts that aspect of the fix as well as reverting the
    firmware name as used in qib.

    Reported-by: David Woodhouse
    Signed-off-by: Mike Marciniszyn
    Signed-off-by: Linus Torvalds

    Mike Marciniszyn
     

28 Mar, 2013

1 commit


26 Mar, 2013

1 commit

  • Pull infiniband/rdma fixes from Roland Dreier:
    "Small batch of InfiniBand/RDMA fixes for 3.9:

    - Fix for TX lockup in IPoIB
    - QLogic -> Intel update for qib driver
    - Small static checker fix for qib
    - Fix error path return value in cxgb4"

    * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
    IB/qib: change QLogic to Intel
    IB/ipath: Silence a static checker warning
    IPoIB: Fix send lockup due to missed TX completion
    RDMA/cxgb4: Fix error return code in create_qp()

    Linus Torvalds
     

23 Mar, 2013

5 commits

  • Roland Dreier
     
  • These changes modify the qib driver as part of acquiring
    the InfiniBand assets of QLogic.

    Reviewed-by: Mike Marciniszyn
    Reviewed-by: Dean Luick
    Signed-off-by: Vinit Agnihotri
    Signed-off-by: Roland Dreier

    Vinit Agnihotri
     
  • I have a static checker which complains that 0x255 is too high for
    the "dev->opstats[opcode]" array. It turns out that the hardware
    has already validated the opcode at this point so it can't actually
    overflow.

    However, silencing the warning is good and this matches how the
    opcode is treated in qib_ib_rcv() as well.

    Signed-off-by: Dan Carpenter
    Acked-by: Mike Marciniszyn
    Signed-off-by: Roland Dreier

    Dan Carpenter
     
  • Commit f0dc117abdfa ("IPoIB: Fix TX queue lockup with mixed UD/CM
    traffic") attempts to solve an issue where unprocessed UD send
    completions can deadlock the netdev.

    The patch doesn't fully resolve the issue because if more than half
    the tx_outstanding's were UD and all of the destinations are RC
    reachable, arming the CQ doesn't solve the issue.

    This patch uses the IB_CQ_REPORT_MISSED_EVENTS on the
    ib_req_notify_cq(). If the rc is above 0, the UD send cq completion
    callback is called directly to re-arm the send completion timer.

    This issue is seen in very large parallel filesystem deployments
    and the patch has been shown to correct the issue.

    Cc:
    Reviewed-by: Dean Luick
    Signed-off-by: Mike Marciniszyn
    Signed-off-by: Roland Dreier

    Mike Marciniszyn
     
  • Fix to return a negative error code from the error handling case
    instead of 0, as returned elsewhere in this function.

    Signed-off-by: Wei Yongjun
    Acked-by: Steve Wise
    Signed-off-by: Roland Dreier

    Wei Yongjun
     

21 Mar, 2013

1 commit


20 Mar, 2013

1 commit

  • Pull networking fixes from David Miller:

    1) Fix ARM BPF JIT handling of negative 'k' values, from Chen Gang.

    2) Insufficient space reserved for bridge netlink values, fix from
    Stephen Hemminger.

    3) Some dst_neigh_lookup*() callers don't interpret error pointer
    correctly, fix from Zhouyi Zhou.

    4) Fix transport match in SCTP active_path loops, from Xugeng Zhang.

    5) Fix qeth driver handling of multi-order SKB frags, from Frank
    Blaschka.

    6) fec driver is missing napi_disable() call, resulting in crashes on
    unload, from Georg Hofmann.

    7) Don't try to handle PMTU events on a listening socket, fix from Eric
    Dumazet.

    8) Fix timestamp location calculations in IP option processing, from
    David Ward.

    9) FIB_TABLE_HASHSZ setting is not controlled by the correct kconfig
    tests, from Denis V Lunev.

    10) Fix TX descriptor push handling in SFC driver, from Ben Hutchings.

    11) Fix isdn/hisax and tulip/de4x5 kconfig dependencies, from Arnd
    Bergmann.

    12) bnx2x statistics don't handle 4GB rollover correctly, fix from
    Maciej Żenczykowski.

    13) Openvswitch bug fixes for vport del/new error reporting, missing
    genlmsg_end() call in netlink processing, and mis-parsing of
    LLC/SNAP ethernet types. From Rich Lane.

    14) SKB pfmemalloc state should only be propagated from the head page of
    a compound page, fix from Pavel Emelyanov.

    15) Fix link handling in tg3 driver for 5715 chips when autonegotation
    is disabled. From Nithin Sujir.

    16) Fix inverted test of cpdma_check_free_tx_desc return value in
    davinci_emac driver, from Mugunthan V N.

    17) vlan_depth is incorrectly calculated in skb_network_protocol(), from
    Li RongQing.

    18) Fix probing of Gobi 1K devices in qmi_wwan driver, and fix NCM
    device mode backwards compat in cdc_ncm driver. From Bjørn Mork.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (52 commits)
    inet: limit length of fragment queue hash table bucket lists
    qeth: Fix scatter-gather regression
    qeth: Fix invalid router settings handling
    qeth: delay feature trace
    tcp: dont handle MTU reduction on LISTEN socket
    bnx2x: fix occasional statistics off-by-4GB error
    vhost/net: fix heads usage of ubuf_info
    bridge: Add support for setting BR_ROOT_BLOCK flag.
    bnx2x: add missing napi deletion in error path
    drivers: net: ethernet: ti: davinci_emac: fix usage of cpdma_check_free_tx_desc()
    ethernet/tulip: DE4x5 needs VIRT_TO_BUS
    isdn: hisax: netjet requires VIRT_TO_BUS
    net: cdc_ncm, cdc_mbim: allow user to prefer NCM for backwards compatibility
    rtnetlink: Mask the rta_type when range checking
    Revert "ip_gre: make ipgre_tunnel_xmit() not parse network header as IP unconditionally"
    Fix dst_neigh_lookup/dst_neigh_lookup_skb return value handling bug
    smsc75xx: configuration help incorrectly mentions smsc95xx
    net: fec: fix missing napi_disable call
    net: fec: restart the FEC when PHY speed changes
    skb: Propagate pfmemalloc on skb from head page only
    ...

    Linus Torvalds