Hi Linus, This is the first of three pull requests this merge window (they are all ready to go, but they all also needed to wait before being sent...two of them needed to wait on DaveM's pull request to land, and the third is a tree-wide change and per typical policy I was going to wait until the end of the merge window and submit it them...please let me know if you want me to handle the tree-wide change any differently, it's the patch series posted by Bart Van Assche to remove the IB DMA ops structs and use the core DMA ops instead). This particular pull request is all of the non-Mellanox and non-tree-wide changes. Nothing overly exciting in this one. There is another new RoCE driver, bnxt_re (this was why we had to wait on Dave's pull request, we had a dependency on changes to the bnxt driver in it). We added a formal ETH_P_IBOE definition in the core net headers so we would have to hard code it all over the place. And lots of miscellaneous updates and fixes across the tree. Here's the boilerplate: > The following changes since > commit 646ebd4166ca00bdf682a36bd2e1c9a74d848ac6: RDMA: Don't reference kernel private header from UAPI header (2017- 02-08 12:28:49 -0500) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma.git tags/for-linus for you to fetch changes up to db690328a7df0b507f7d59de0c7e1bbe8f4b9e6a: RDMA/bnxt_re: fix for "bnxt_en: Update to firmware interface spec 1.7.0." (2017-02-22 15:40:17 -0500) ---------------------------------------------------------------- First set of updates for 4.11 kernel merge window - Add new Broadcom bnxt_re RoCE driver - rxe driver updates - ioctl cleanups - ETH_P_IBOE declaration cleanup - IPoIB changes - Add port state cache - Allow srpt driver to accept guids as port names in config - Update to hfi1 driver - Update to srp driver - Lots of misc. minor changes all over ---------------------------------------------------------------- Amrani, Ram (1): RDMA/qedr: restructure functions that create/destroy QPs Arnd Bergmann (3): IB/hfi1: use size_t for passing array length IB/hns: include linux/module.h RDMA/bnxt_re: add DCB dependency Bart Van Assche (24): IB/rxe: Suppress sparse warnings IB/rxe: Constify the pool name IB/rxe: Remove an unused function IB/rxe: Remove an unused variable and an unused argument IB/rxe: Remove superfluous casts IB/rxe: Enable type checking on SKB_TO_PKT() and PKT_TO_SKB() arguments IB/rxe: Let the compiler check the type of the cleanup functions IB/rxe: Issue warnings once IB/rxe: Add a runtime check in alloc_index() IB/rxe: Introduce functions for queue draining IB/rxe: Generate a completion for all failed work requests IB/rxe: Fix a MR reference leak in check_rkey() IB/rxe: Fix reference leaks in memory key invalidation code IB/rxe: Remove a pointless indirection layer IB/rxe: Fix an skb leak IB/srpt: Accept GUIDs as port names IB/SRP: Avoid using IB_MR_TYPE_SG_GAPS IB/srp: Avoid that duplicate responses trigger a kernel bug IB/srp: Fix race conditions related to task management IB/srp: Document locking conventions IB/srp: Make a diagnostic message more informative IB/srp: Improve an error path IB/core: Add support for draining IB_POLL_DIRECT completion queues IB/srp: Drain the send queue before destroying a QP Brian Welty (5): IB/hfi1, qib, rdmavt: Move two IB event functions into rdmavt IB/hfi1, qib, rdmavt: Move AETH credit functions into rdmavt IB/hfi1, rdmavt: Update copy_sge to use boolean arguments IB/hfi1, rdmavt: Move SGE state helper routines into rdmavt IB/qib: Updates to use rdmavt's SGE helper routines Cao jin (2): RDMA/qib: drop qib_pci_link_reset() RDMA/hfi1: drop pci_link_reset() Christoph Hellwig (2): IB/mthca: switch to pci_alloc_irq_vectors vmw_pvrdma: switch to pci_alloc_irq_vectors Christophe Jaillet (2): IB/cma: Fix reversed test RDMA/qedr: Fix some error handling Colin Ian King (1): IB/isert: fix spelling mistake: "teminating" -> "terminating" Dan Carpenter (1): i40iw: fix some indenting in i40iw_sc_vsi_init() Don Hiatt (2): IB/hfi1: Add rvt_rnr_tbl_to_usec function IB/hfi1, qib, rdmavt: Move AETH defines to rdma/ib_hdrs.h Doug Ledford (1): Merge branch 'k.o/for-4.10-rc' into HEAD Easwar Hariharan (1): IB/hfi1: Use static CTLE with Preset 6 for integrated HFIs Erez Shitrit (1): IB/IPoIB: Add destination address when re-queue packet Feras Daoud (9): IB/ipoib: When given an invalid UD MTU, give debug msg IB/ipoib: Set device connection mode only when needed IB/ipoib: Fix deadlock over vlan_mutex IB/ipoib: Fix deadlock between rmmod and set_mode IB/ipoib: rtnl_unlock can not come after free_netdev IB/ipoib: Add detailed error message to dev_queue_xmit call IB/ipoib: Use debug prints instead of warnings in RNR WC status IB/ipoib: Replace list_del of the neigh->list with list_del_init IB/ipoib: Change list_del to list_del_init in the tx object Ganesh Goudar (2): iw_cxgb4: Guard against null cm_id in dump_ep/qp iw_cxgb4: clean up send_connect() Geliang Tang (1): RDMA/qib: use rb_entry() Jack Wang (5): RDMA/core: add port state cache RDMA/core: export ib_get_cached_port_state RDMA/cma: resolve to first active ib port RDMA/cma: use cached port state when bind loopback RDMA/core: create struct ib_port_cache Jakub Byczkowski (1): IB/hfi1: Modify logging frequency of DCC errors Jason Gunthorpe (1): RDMA/core: Fix incorrect structure packing for booleans Kees Cook (2): RDMA/nes: use designated initializers RDMA/i40iw: use designated initializers Leon Romanovsky (7): RDMA/core: Commonize RDMA IOCTL declarations location RDMA/core: Move legacy MAD IOCTL declarations to common file RDMA/hfi1: Avoid redeclaration error RDMA/core: Move HFI1 IOCTL declarations to common file RDMA/core: Rename RDMA magic number RDMA/core: Unify style of IOCTL commands IB/qib: Remove empty function Majd Dibbiny (1): IB/cma: Add default RoCE TOS to CMA configfs Max Gurtovoy (1): IB/iser: Protect completion context active_qps update Michael J. Ruhl (2): IB/hfi1: Do not set physical link state if DC is in the shutdown state IB/hfi1: Code reuse with memdup_copy Mike Marciniszyn (6): IB/hfi1: Correct defered count after processing qp_wait_list IB/hfi1: Process qp wait list in IRQ thread periodically IB/hfi1: Ensure read of producer s_head is correct IB/hfi1: Correct error calldown locking IB/hfi1: Add additional fields to qp_stats IB/rdmavt, IB/hfi1, IB/qib: Correct ack count for passive (RTR) QPs Moni Shoua (3): IB/cma: Add debug messages to error flows IB/cma: Allow port reuse for rdma_id IB/cma: Destination and source addr families must match Parav Pandit (1): IB/core: Remove pointer casting from void to net_device Sebastian Sanchez (5): IB/hfi1: Access hfi1_ibport through rcd pointer IB/rdmavt: Use per-CPU reference count for MRs IB/hfi1: Allocate context data on memory node IB/hfi1: Reduce oversized fields in struct hfi1_packet IB/hfi1: Check upper-case EFI variables Selvin Xavier (3): RDMA: Adding ethertype ETH_P_IBOE RDMA/bnxt_re: Add bnxt_re RoCE driver RDMA/bnxt_re: Add bnxt_re driver build support Shiraz Saleem (1): i40iw: Set maj_err and min_err in i40iw_sc_cqp_create Stephen Rothwell (1): RDMA/bnxt_re: fix for "bnxt_en: Update to firmware interface spec 1.7.0." Steve Wise (1): rdma_cm: fail iwarp accepts w/o connection params Venkata Sandeep Dhanalakota (3): IB/rdmavt: Adding timer logic to rdmavt IB/hfi1: Use new rdmavt timers IB/qib: Use new rdmavt timers Wei Yongjun (1): IB/rxe: use setup_timer to simplify the code Yuval Shaia (5): IB/core: Fix typo in comment IB/vmw_pvrdma: Remove unused qp_type IB/mad: Add port_num to error message IB/core: Add inline function to validate port IB/vmw_pvrdma: Expose vendor error to ULPs Zhu Yanjun (5): IB/ipoib: Remove unnecessary returned value check IB/ipoib: function interface change IB/ipoib: Remove the unnecessary error check IB/ipoib: remove the unnecessary memory free IB/ipoib: Remove redudant label ssh10 (2): RDMA/cxgb4: Use AF_INET for sin_family field RDMA/ocrdma: Replace BUG() with BUG_ON() Documentation/ABI/testing/configfs-rdma_cm | 8 + MAINTAINERS | 11 + drivers/infiniband/Kconfig | 2 + drivers/infiniband/core/cache.c | 162 +- drivers/infiniband/core/cm.c | 2 + drivers/infiniband/core/cma.c | 171 +- drivers/infiniband/core/cma_configfs.c | 42 + drivers/infiniband/core/core_priv.h | 3 + drivers/infiniband/core/cq.c | 6 +- drivers/infiniband/core/device.c | 4 +- drivers/infiniband/core/mad.c | 4 +- drivers/infiniband/core/roce_gid_mgmt.c | 28 +- drivers/infiniband/core/verbs.c | 38 +- drivers/infiniband/hw/Makefile | 1 + drivers/infiniband/hw/bnxt_re/Kconfig | 9 + drivers/infiniband/hw/bnxt_re/Makefile | 6 + drivers/infiniband/hw/bnxt_re/bnxt_re.h | 146 + drivers/infiniband/hw/bnxt_re/ib_verbs.c | 3202 ++++++++++++++++++++ drivers/infiniband/hw/bnxt_re/ib_verbs.h | 197 ++ drivers/infiniband/hw/bnxt_re/main.c | 1315 ++++++++ drivers/infiniband/hw/bnxt_re/qplib_fp.c | 2167 +++++++++++++ drivers/infiniband/hw/bnxt_re/qplib_fp.h | 439 +++ drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 694 +++++ drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 231 ++ drivers/infiniband/hw/bnxt_re/qplib_res.c | 825 +++++ drivers/infiniband/hw/bnxt_re/qplib_res.h | 223 ++ drivers/infiniband/hw/bnxt_re/qplib_sp.c | 838 +++++ drivers/infiniband/hw/bnxt_re/qplib_sp.h | 160 + drivers/infiniband/hw/bnxt_re/roce_hsi.h | 2821 +++++++++++++++++ drivers/infiniband/hw/cxgb4/cm.c | 62 +- drivers/infiniband/hw/cxgb4/device.c | 133 +- drivers/infiniband/hw/hfi1/chip.c | 38 +- drivers/infiniband/hw/hfi1/common.h | 4 - drivers/infiniband/hw/hfi1/debugfs.c | 39 +- drivers/infiniband/hw/hfi1/driver.c | 125 +- drivers/infiniband/hw/hfi1/efivar.c | 26 +- drivers/infiniband/hw/hfi1/hfi.h | 18 +- drivers/infiniband/hw/hfi1/init.c | 17 +- drivers/infiniband/hw/hfi1/pcie.c | 14 +- drivers/infiniband/hw/hfi1/qp.c | 177 +- drivers/infiniband/hw/hfi1/qp.h | 22 - drivers/infiniband/hw/hfi1/rc.c | 296 +- drivers/infiniband/hw/hfi1/ruc.c | 55 +- drivers/infiniband/hw/hfi1/trace.c | 4 +- drivers/infiniband/hw/hfi1/uc.c | 16 +- drivers/infiniband/hw/hfi1/ud.c | 18 +- drivers/infiniband/hw/hfi1/user_exp_rcv.c | 17 +- drivers/infiniband/hw/hfi1/user_sdma.c | 17 +- drivers/infiniband/hw/hfi1/verbs.c | 117 +- drivers/infiniband/hw/hfi1/verbs.h | 24 +- drivers/infiniband/hw/hns/hns_roce_main.c | 1 + drivers/infiniband/hw/i40iw/i40iw_ctrl.c | 137 +- drivers/infiniband/hw/i40iw/i40iw_uk.c | 34 +- drivers/infiniband/hw/mlx4/qp.c | 6 +- drivers/infiniband/hw/mthca/mthca_main.c | 24 +- drivers/infiniband/hw/nes/nes_cm.c | 22 +- drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 4 +- drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 3 +- drivers/infiniband/hw/ocrdma/ocrdma_sli.h | 5 - drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 15 +- drivers/infiniband/hw/qedr/qedr_cm.c | 2 +- drivers/infiniband/hw/qedr/qedr_cm.h | 1 - drivers/infiniband/hw/qedr/verbs.c | 559 ++-- drivers/infiniband/hw/qib/qib_common.h | 4 - drivers/infiniband/hw/qib/qib_iba7322.c | 1 - drivers/infiniband/hw/qib/qib_pcie.c | 8 - drivers/infiniband/hw/qib/qib_qp.c | 135 - drivers/infiniband/hw/qib/qib_qsfp.c | 10 - drivers/infiniband/hw/qib/qib_qsfp.h | 1 - drivers/infiniband/hw/qib/qib_rc.c | 179 +- drivers/infiniband/hw/qib/qib_ruc.c | 47 +- drivers/infiniband/hw/qib/qib_uc.c | 15 +- drivers/infiniband/hw/qib/qib_ud.c | 8 +- drivers/infiniband/hw/qib/qib_user_sdma.c | 6 +- drivers/infiniband/hw/qib/qib_verbs.c | 96 +- drivers/infiniband/hw/qib/qib_verbs.h | 10 +- drivers/infiniband/hw/usnic/usnic_common_pkt_hdr.h | 1 - drivers/infiniband/hw/usnic/usnic_fwd.h | 3 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma.h | 8 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_cq.c | 2 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_dev_api.h | 6 - drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c | 162 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_qp.c | 5 +- drivers/infiniband/sw/rdmavt/Makefile | 4 +- drivers/infiniband/sw/rdmavt/mr.c | 59 +- drivers/infiniband/sw/rdmavt/pd.c | 2 +- drivers/infiniband/sw/rdmavt/qp.c | 233 +- drivers/infiniband/sw/rdmavt/rc.c | 189 ++ drivers/infiniband/sw/rxe/rxe.c | 2 +- drivers/infiniband/sw/rxe/rxe_comp.c | 91 +- drivers/infiniband/sw/rxe/rxe_cq.c | 4 +- drivers/infiniband/sw/rxe/rxe_hdr.h | 12 +- drivers/infiniband/sw/rxe/rxe_loc.h | 29 +- drivers/infiniband/sw/rxe/rxe_mcast.c | 8 +- drivers/infiniband/sw/rxe/rxe_mr.c | 10 +- drivers/infiniband/sw/rxe/rxe_net.c | 51 +- drivers/infiniband/sw/rxe/rxe_pool.c | 14 +- drivers/infiniband/sw/rxe/rxe_pool.h | 8 +- drivers/infiniband/sw/rxe/rxe_qp.c | 13 +- drivers/infiniband/sw/rxe/rxe_recv.c | 2 +- drivers/infiniband/sw/rxe/rxe_req.c | 34 +- drivers/infiniband/sw/rxe/rxe_resp.c | 64 +- drivers/infiniband/sw/rxe/rxe_verbs.c | 10 +- drivers/infiniband/sw/rxe/rxe_verbs.h | 24 +- drivers/infiniband/ulp/ipoib/ipoib.h | 10 +- drivers/infiniband/ulp/ipoib/ipoib_cm.c | 41 +- drivers/infiniband/ulp/ipoib/ipoib_ib.c | 14 +- drivers/infiniband/ulp/ipoib/ipoib_main.c | 77 +- drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 10 +- drivers/infiniband/ulp/ipoib/ipoib_vlan.c | 14 +- drivers/infiniband/ulp/iser/iser_verbs.c | 2 + drivers/infiniband/ulp/isert/ib_isert.c | 2 +- drivers/infiniband/ulp/srp/ib_srp.c | 93 +- drivers/infiniband/ulp/srp/ib_srp.h | 1 + drivers/infiniband/ulp/srpt/ib_srpt.c | 139 +- drivers/infiniband/ulp/srpt/ib_srpt.h | 18 +- drivers/target/target_core_tpg.c | 1 + include/rdma/ib_cache.h | 13 + include/rdma/ib_hdrs.h | 6 + include/rdma/ib_sa.h | 6 +- include/rdma/ib_verbs.h | 18 +- include/rdma/rdma_vt.h | 21 +- include/rdma/rdmavt_mr.h | 60 +- include/rdma/rdmavt_qp.h | 46 + include/target/target_core_base.h | 1 + include/uapi/linux/if_ether.h | 1 + include/uapi/rdma/Kbuild | 1 + include/uapi/rdma/bnxt_re-abi.h | 89 + include/uapi/rdma/hfi/Kbuild | 1 + include/uapi/rdma/hfi/hfi1_ioctl.h | 173 ++ include/uapi/rdma/hfi/hfi1_user.h | 175 +- include/uapi/rdma/ib_user_mad.h | 14 +- include/uapi/rdma/rdma_user_ioctl.h | 87 + 133 files changed, 15869 insertions(+), 2642 deletions(-) create mode 100644 drivers/infiniband/hw/bnxt_re/Kconfig create mode 100644 drivers/infiniband/hw/bnxt_re/Makefile create mode 100644 drivers/infiniband/hw/bnxt_re/bnxt_re.h create mode 100644 drivers/infiniband/hw/bnxt_re/ib_verbs.c create mode 100644 drivers/infiniband/hw/bnxt_re/ib_verbs.h create mode 100644 drivers/infiniband/hw/bnxt_re/main.c create mode 100644 drivers/infiniband/hw/bnxt_re/qplib_fp.c create mode 100644 drivers/infiniband/hw/bnxt_re/qplib_fp.h create mode 100644 drivers/infiniband/hw/bnxt_re/qplib_rcfw.c create mode 100644 drivers/infiniband/hw/bnxt_re/qplib_rcfw.h create mode 100644 drivers/infiniband/hw/bnxt_re/qplib_res.c create mode 100644 drivers/infiniband/hw/bnxt_re/qplib_res.h create mode 100644 drivers/infiniband/hw/bnxt_re/qplib_sp.c create mode 100644 drivers/infiniband/hw/bnxt_re/qplib_sp.h create mode 100644 drivers/infiniband/hw/bnxt_re/roce_hsi.h create mode 100644 drivers/infiniband/sw/rdmavt/rc.c create mode 100644 include/uapi/rdma/bnxt_re-abi.h create mode 100644 include/uapi/rdma/hfi/hfi1_ioctl.h create mode 100644 include/uapi/rdma/rdma_user_ioctl.h -- Doug Ledford <dledford@xxxxxxxxxx> GPG KeyID: B826A3330E572FDD Key fingerprint = AE6B 1BDA 122B 23B4 265B 1274 B826 A333 0E57 2FDD
Attachment:
signature.asc
Description: This is a digitally signed message part