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     GPG KeyID: B826A3330E572FDD     Key fingerprint = AE6B 1BDA 122B 23B4 265B  1274 B826 A333 0E57 2FDD