Hi Linus, These are the proposed RDMA patches for 5.2. There is a small conflict with the mlx5-next (net-next) tree resolved with this hunk: diff --cc drivers/infiniband/hw/mlx5/main.c index 687f99172037be,fae6a6a1fbea12..abac70ad5c7c46 --- a/drivers/infiniband/hw/mlx5/main.c +++ b/drivers/infiniband/hw/mlx5/main.c @@@ -200,12 -172,18 +200,12 @@@ static int mlx5_netdev_event(struct not switch (event) { case NETDEV_REGISTER: + /* Should already be registered during the load */ + if (ibdev->is_rep) + break; write_lock(&roce->netdev_lock); - if (ndev->dev.parent == &mdev->pdev->dev) - if (ibdev->rep) { - struct mlx5_eswitch *esw = ibdev->mdev->priv.eswitch; - struct net_device *rep_ndev; - - rep_ndev = mlx5_ib_get_rep_netdev(esw, - ibdev->rep->vport); - if (rep_ndev == ndev) - roce->netdev = ndev; - } else if (ndev->dev.parent == mdev->device) { ++ if (ndev->dev.parent == mdev->device) roce->netdev = ndev; - } write_unlock(&roce->netdev_lock); break; I also have some notifications from StephenR about minor conflicts with patches in akpm's tree that you haven't merged yet. Here are his resolutions: https://lore.kernel.org/lkml/20190509153805.6dfbb8ef@canb.auug.org.au/ https://lore.kernel.org/lkml/20190506204824.11a7b368@canb.auug.org.au/ https://lore.kernel.org/lkml/20190506203710.10b080dc@canb.auug.org.au/ The tag for-linus-merged with my merge resolution for the mlx5-next branch is also available to pull. The following changes since commit 96780e4f46b2fc0fc5ae2b95957002e2c42b11d3: net/mlx5: Introduce new TIR creation core API (2019-04-24 12:33:37 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git tags/for-linus for you to fetch changes up to b79656ed44c6865e17bcd93472ec39488bcc4984: RDMA/ipoib: Allow user space differentiate between valid dev_port (2019-05-07 16:13:23 -0300) ---------------------------------------------------------------- 5.2 Merge Window pull request This has been a smaller cycle than normal. One new driver was accepted, which is unusual, and at least one more driver remains in review on the list. - Driver fixes for hns, hfi1, nes, rxe, i40iw, mlx5, cxgb4, vmw_pvrdma - Many patches from MatthewW converting radix tree and IDR users to use xarray - Introduction of tracepoints to the MAD layer - Build large SGLs at the start for DMA mapping and get the driver to split them - Generally clean SGL handling code throughout the subsystem - Support for restricting RDMA devices to net namespaces for containers - Progress to remove object allocation boilerplate code from drivers - Change in how the mlx5 driver shows representor ports linked to VFs - mlx5 uapi feature to access the on chip SW ICM memory - Add a new driver for 'EFA'. This is HW that supports user space packet processing through QPs in Amazon's cloud ---------------------------------------------------------------- Ariel Levkovich (5): IB/mlx5: Expose TIR ICM address to user space IB/mlx5: Support device memory type attribute IB/mlx5: Warn on allocated MEMIC buffers during cleanup IB/mlx5: Add steering SW ICM device memory type IB/mlx5: Device resource control for privileged DEVX user Artemy Kovalyov (3): IB/mlx5: WQE dump jumps over first 16 bytes IB/mlx5: Compare only index part of a memory window rkey IB/core: Set qp->real_qp before it may be accessed Bart Van Assche (6): RDMA/uverbs: Add a __user annotation to a pointer RDMA/uverbs: Annotate uverbs_request_next_ptr() return value as a __user pointer RDMA/uverbs: Allow the compiler to verify declaration and definition consistency IB/mlx5: Declare devx_async_cmd_event_fops static IB/hfi1: Fix two format strings IB/qib: Remove a set-but-not-used variable Chengguang Xu (1): infiniband/qib: Fix typo in comment Colin Ian King (6): RDMA/nes: remove redundant check on udata IB/iser: remove uninitialized variable len opa_vnic: fix check on record->event, incorrect operator used RDMA/mlx5: Check for error return in flow_rule rather than err RDMA/cxgb4: Fix null pointer dereference on alloc_skb failure RDMA/cxgb4: Fix spelling mistake "immedate" -> "immediate" Dennis Dalessandro (1): IB/core, ipoib: Do not overreact to SM LID change event Devesh Sharma (1): RDMA/ocrdma: Remove use of idr use pci bdf instead Enrico Weigelt, metux IT consult (1): drivers: infiniband: Fix whitespace in kconfig Erez Alfasi (1): RDMA: Use __packed annotation instead of __attribute__ ((packed)) Gal Pressman (14): RDMA/core: Introduce RDMA subsystem ibdev_* print functions RDMA/uverbs: Initialize udata struct on destroy flows RDMA: Add EFA related definitions RDMA/efa: Add EFA device definitions RDMA/efa: Add the efa.h header file RDMA/efa: Add the efa_com.h file RDMA/efa: Add the com service API definitions RDMA/efa: Add the ABI definitions RDMA/efa: Implement functions that submit and complete admin commands RDMA/efa: Add common command handlers RDMA/efa: Add EFA verbs implementation RDMA/efa: Add the efa module RDMA/efa: Add driver to Kconfig/Makefile lib/scatterlist: Remove leftover from sg_page_iter comment Ira Weiny (7): IB/core: Ensure an invalidate_range callback on ODP MR IB/MAD: Add send path trace points IB/MAD: Add recv path trace point IB/MAD: Add agent trace points IB/UMAD: Add umad trace points IB/MAD: Add SMP details to MAD tracing BPF: Add sample code for new ib_umad tracepoint Jack Morgenstein (1): IB/mlx5: Add missing XRC options to QP optional params mask Jason Gunthorpe (9): Merge HFI1 updates into k.o/for-next IB/mlx5: Remove references to uboject->context IB: When attrs.udata/ufile is available use that instead of uobject RDMA/drivers: Convert easy drivers to use ib_device_set_netdev() Merge branch 'mlx5-next' into rdma.git for-next RDMA/mlx5: Use get_zeroed_page() for clock_info RDMA: Remove rdma_user_mmap_page Merge branch 'rdma_mmap' into rdma.git for-next Merge branch 'mlx5_tir_icm' into rdma.git for-next John Fleck (1): IB/hfi1: Remove reference to RHF.VCRCErr Josh Collier (1): IB/hfi1: Add debugfs to control expansion ROM write protect Kaike Wan (6): IB/hfi1: Delay the release of destination mr for TID RDMA WRITE DATA IB/hfi1: Add a function to read next expected psn from hardware flow IB/hfi1: Unify the software PSN check for TID RDMA READ/WRITE IB/hfi1: Remove WARN_ON when freeing expected receive groups IB/hfi1: Implement CCA for TID RDMA protocol IB/{rdmavt, hfi1): Miscellaneous comment fixes Kamal Heib (1): RDMA: Get rid of iw_cm_verbs Kangjie Lu (1): RDMA/i40iw: Handle workqueue allocation failure Leon Romanovsky (19): RDMA/rxe: Fix slab-out-bounds access which lead to kernel crash later overflow: Fix -Wtype-limits compilation warnings RDMA/hns: Limit scope of hns_roce_cmq_send() RDMA/netlink: Remove unused data structure RDMA/core: Don't compare specific bit after boolean AND RDMA/hns: Fix bad endianess of port_pd variable RDMA/cma: Set proper port number as index RDMA/mlx5: Cleanup WQE page fault handler RDMA/cm: Remove useless zeroing of static global variable RDMA/cm: Move debug counters to be under relevant IB device RDMA/nldev: Return device protocol RDMA/core: Support object allocation in atomic context RDMA: Handle AH allocations by IB/core RDMA: Handle SRQ allocations by IB/core RDMA/hns: Remove asynchronic QP destroy RDMA/rdmavt: Catch use-after-free access of AH structures RDMA/mlx5: Remove MAYEXEC flag RDMA/device: Don't fire uevent before device is fully initialized RDMA/ipoib: Allow user space differentiate between valid dev_port Lijun Ou (8): RDMA/hns: Only assign the relatived fields of psn if IB_QP_SQ_PSN is set RDMA/hns: Only assign the fields of the rq psn if IB_QP_RQ_PSN is set RDMA/hns: Update the range of raq_psn field of qp context RDMA/hns: Only assgin some fields if the relatived attr_mask is set RDMA/hns: Hide error print information with roce vf device RDMA/hns: Bugfix for sending with invalidate RDMA/hns: Delete unused variable in hns_roce_v2_modify_qp function RDMA/hns: Dump detailed driver-specific CQ Maor Gottlieb (1): RDMA/mlx5: Add query e-switch vport context to devx white list Mark Bloch (16): RDMA/mlx5: Move netdev info into the port struct RDMA/mlx5: Free IB device on remove RDMA/mlx5: Move ports allocation to outside of INIT stage RDMA/mlx5: Use correct size for device resources RDMA/mlx5: Move rep into port struct RDMA/mlx5: Move default representors SQ steering to rule to modify QP RDMA/mlx5: Refactor netdev affinity code RDMA/mlx5: Move SMI caps logic RDMA/mlx5: Move to single device multiport ports in switchdev mode RDMA/mlx5: Remove VF representor profile RDMA/mlx5: Access the prio bypass inside the FDB flow table namespace RDMA/mlx5: Create flow table with max size supported RDMA/mlx5: Allow inserting a steering rule to the FDB RDMA/mlx5: Allow DEVX and raw creation flow on reps RDMA/mlx5: Initialize roce port info before multiport master init RDMA/mlx5: Don't create IB representors when in multiport RoCE mode Matthew Wilcox (26): cxgb3: Convert cqidr to XArray cxgb3: Convert qpidr to XArray cxgb3: Convert mmidr to XArray cxgb4: Convert cqidr to XArray cxgb4: Convert qpidr to XArray cxgb4: Convert mmidr to XArray cxgb4: Convert hwtid_idr to XArray cxgb4: Convert atid_idr to XArray cxgb4: Convert stid_idr to XArray mlx5: Convert mlx5_srq_table to XArray mlx4: Convert pv_id_table to XArray IB/mad: Convert ib_mad_clients to XArray RDMA/cm: Convert local_id_table to XArray ib core: Convert query_idr to XArray ucm: Convert ctx_id_table to XArray cma: Convert portspace IDRs to XArray RDMA/hns: Convert cq_table to XArray RDMA/hns: Convert qp_table_tree to XArray hfi1: Convert vesw_idr to XArray qedr: Convert qpidr to XArray qedr: Convert srqidr to XArray hfi1: Convert hfi1_unit_table to XArray qib: Convert qib_unit_table to XArray opa_vnic: Convert vport_idr to XArray ib/bnxt: Remove mention of idr_alloc from comment uverbs: Convert idr to XArray Mike Marciniszyn (7): IB/hfi1: Add running average for adaptive pio IB/hfi1: Make opfn.h self sufficient IB/rdmavt: Fix ab/ba include issues IB/rdmavt: Use more efficient allowed_ops IB/{rdmavt, qib, hfi1}: Use new routine to release reference counts IB/hfi1: Add selected Rcv counters IB/hfi1: Fix WQ_MEM_RECLAIM warning Parav Pandit (22): RDMA/core: Introduce ib_core_device to hold device RDMA/core: Restrict sysfs entries view to init_net RDMA/core: Implement compat device/sysfs tree in net namespace RDMA/core: Support core port attributes in non init_net RDMA/core: Add module param to disable device sharing among net ns RDMA: Check net namespace access for uverbs, umad, cma and nldev RDMA/core: Extend ib_device_get_by_index for net namespace RDMA/core: Add interface to read device namespace sharing mode RDMA/core: Add command to set ib_core device net namspace sharing mode RDMA/core: Avoid freeing netdevs in disable_device() RDMA/core: Introduce a helper function to change net namespace of rdma device RDMA/core: Add a netlink command to change net namespace of rdma device IB/core: Allow vlan link local address based RoCE GIDs RDMA/cma: Consider scope_id while binding to ipv6 ll address RDMA/core: Do not invoke init_port on compat devices RDMA/rxe: Consider skb reserve space based on netdev of GID IB/cm: Reduce dependency on gid attribute ndev check RDMA: Introduce and use GID attr helper to read RoCE L2 fields RDMA/cma: Use rdma_read_gid_attr_ndev_rcu to access netdev RDMA/rxe: Use rdma_read_gid_attr_ndev_rcu to access netdev net/smc: Use rdma_read_gid_l2_fields to L2 fields RDMA/core: Allow detaching gid attribute netdevice for RoCE Potnuri Bharat Teja (2): iw_cxgb4: Update Maintainer details RDMA/iw_cxgb4: Always disconnect when QP is transitioning to TERMINATE state Selvin Xavier (1): RDMA/bnxt_re: Use correct sizing on buffers holding page DMA addresses Shamir Rabinovitch (6): IB: ucontext should be set properly for all cmd & ioctl paths IB: Pass uverbs_attr_bundle down uobject destroy path IB: Pass uverbs_attr_bundle down ib_x destroy path IB: Remove 'uobject->context' dependency in object destroy APIs IB: Pass only ib_udata in function prototypes RDMA/uverbs: Initialize uverbs_attr_bundle ucontext in ib_uverbs_get_context Shiraz Saleem (12): RDMA/cxbg: Use correct sizing on buffers holding page DMA addresses RDMA/mthca: Use correct sizing on buffers holding page DMA addresses RDMA/rxe: Use correct sizing on buffers holding page DMA addresses RDMA/rdmavt: Use correct sizing on buffers holding page DMA addresses RDMA/umem: Combine contiguous PAGE_SIZE regions in SGEs RDMA/umem: Use correct value for SG entries in sg_copy_to_buffer() RDMA/umem: Handle page combining avoidance correctly in ib_umem_add_sg_table() RDMA/umem: Add API to find best driver supported page size in an MR RDMA/verbs: Add a DMA iterator to return aligned contiguous memory blocks RDMA/i40iw: Use core helpers to get aligned DMA address within a supported page size RDMA/bnxt_re: Use core helpers to get aligned DMA address RDMA/umem: Remove hugetlb flag Steve Wise (1): RDMA/cxgb4: Use ib_device_set_netdev() Yuval Shaia (1): RDMA/vmw_pvrdma: Skip zeroing device attrs Zhu Yanjun (1): IB/rxe: Replace av->network_type with skb->protocol chenglang (1): RDMA/hns: Support to create 1M srq queue MAINTAINERS | 17 +- drivers/infiniband/Kconfig | 1 + drivers/infiniband/core/addr.c | 1 + drivers/infiniband/core/cache.c | 145 +- drivers/infiniband/core/cm.c | 94 +- drivers/infiniband/core/cm_msgs.h | 22 +- drivers/infiniband/core/cma.c | 83 +- drivers/infiniband/core/core_priv.h | 18 +- drivers/infiniband/core/cq.c | 21 +- drivers/infiniband/core/device.c | 632 ++++++- drivers/infiniband/core/iwcm.c | 35 +- drivers/infiniband/core/mad.c | 87 +- drivers/infiniband/core/mad_priv.h | 4 +- drivers/infiniband/core/multicast.c | 1 - drivers/infiniband/core/nldev.c | 112 +- drivers/infiniband/core/rdma_core.c | 200 +-- drivers/infiniband/core/rdma_core.h | 11 +- drivers/infiniband/core/sa_query.c | 44 +- drivers/infiniband/core/sysfs.c | 93 +- drivers/infiniband/core/ucm.c | 35 +- drivers/infiniband/core/umem.c | 179 +- drivers/infiniband/core/umem_odp.c | 20 +- drivers/infiniband/core/user_mad.c | 22 + drivers/infiniband/core/uverbs.h | 7 +- drivers/infiniband/core/uverbs_cmd.c | 99 +- drivers/infiniband/core/uverbs_ioctl.c | 29 +- drivers/infiniband/core/uverbs_main.c | 69 +- drivers/infiniband/core/uverbs_std_types.c | 52 +- .../infiniband/core/uverbs_std_types_counters.c | 6 +- drivers/infiniband/core/uverbs_std_types_cq.c | 12 +- drivers/infiniband/core/uverbs_std_types_dm.c | 10 +- .../infiniband/core/uverbs_std_types_flow_action.c | 6 +- drivers/infiniband/core/uverbs_std_types_mr.c | 9 +- drivers/infiniband/core/verbs.c | 233 ++- drivers/infiniband/hw/Makefile | 1 + drivers/infiniband/hw/bnxt_re/Kconfig | 12 +- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 194 +-- drivers/infiniband/hw/bnxt_re/ib_verbs.h | 36 +- drivers/infiniband/hw/bnxt_re/main.c | 8 +- drivers/infiniband/hw/bnxt_re/qplib_fp.c | 39 +- drivers/infiniband/hw/bnxt_re/qplib_fp.h | 13 +- drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 4 +- drivers/infiniband/hw/bnxt_re/qplib_res.c | 43 +- drivers/infiniband/hw/bnxt_re/qplib_res.h | 8 +- drivers/infiniband/hw/bnxt_re/qplib_sp.c | 16 +- drivers/infiniband/hw/bnxt_re/qplib_sp.h | 4 +- drivers/infiniband/hw/cxgb3/cxio_wr.h | 10 +- drivers/infiniband/hw/cxgb3/iwch.c | 56 +- drivers/infiniband/hw/cxgb3/iwch.h | 38 +- drivers/infiniband/hw/cxgb3/iwch_ev.c | 18 +- drivers/infiniband/hw/cxgb3/iwch_mem.c | 2 +- drivers/infiniband/hw/cxgb3/iwch_provider.c | 97 +- drivers/infiniband/hw/cxgb4/cm.c | 69 +- drivers/infiniband/hw/cxgb4/cq.c | 23 +- drivers/infiniband/hw/cxgb4/device.c | 210 +-- drivers/infiniband/hw/cxgb4/ev.c | 18 +- drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 96 +- drivers/infiniband/hw/cxgb4/mem.c | 25 +- drivers/infiniband/hw/cxgb4/provider.c | 77 +- drivers/infiniband/hw/cxgb4/qp.c | 77 +- drivers/infiniband/hw/efa/Kconfig | 15 + drivers/infiniband/hw/efa/Makefile | 9 + drivers/infiniband/hw/efa/efa.h | 163 ++ drivers/infiniband/hw/efa/efa_admin_cmds_defs.h | 794 +++++++++ drivers/infiniband/hw/efa/efa_admin_defs.h | 136 ++ drivers/infiniband/hw/efa/efa_com.c | 1160 +++++++++++++ drivers/infiniband/hw/efa/efa_com.h | 144 ++ drivers/infiniband/hw/efa/efa_com_cmd.c | 692 ++++++++ drivers/infiniband/hw/efa/efa_com_cmd.h | 270 +++ drivers/infiniband/hw/efa/efa_common_defs.h | 18 + drivers/infiniband/hw/efa/efa_main.c | 533 ++++++ drivers/infiniband/hw/efa/efa_regs_defs.h | 113 ++ drivers/infiniband/hw/efa/efa_verbs.c | 1825 ++++++++++++++++++++ drivers/infiniband/hw/hfi1/chip.c | 54 +- drivers/infiniband/hw/hfi1/chip.h | 3 + drivers/infiniband/hw/hfi1/chip_registers.h | 3 + drivers/infiniband/hw/hfi1/common.h | 2 +- drivers/infiniband/hw/hfi1/debugfs.c | 82 +- drivers/infiniband/hw/hfi1/driver.c | 19 +- drivers/infiniband/hw/hfi1/exp_rcv.c | 3 - drivers/infiniband/hw/hfi1/hfi.h | 8 +- drivers/infiniband/hw/hfi1/init.c | 59 +- drivers/infiniband/hw/hfi1/opfn.h | 6 +- drivers/infiniband/hw/hfi1/qp.c | 2 + drivers/infiniband/hw/hfi1/rc.c | 27 +- drivers/infiniband/hw/hfi1/rc.h | 8 + drivers/infiniband/hw/hfi1/ruc.c | 2 +- drivers/infiniband/hw/hfi1/tid_rdma.c | 274 ++- drivers/infiniband/hw/hfi1/tid_rdma.h | 2 - drivers/infiniband/hw/hfi1/trace_dbg.h | 4 +- drivers/infiniband/hw/hfi1/trace_tid.h | 12 +- drivers/infiniband/hw/hfi1/verbs.c | 15 +- drivers/infiniband/hw/hfi1/verbs.h | 1 + drivers/infiniband/hw/hfi1/vnic_main.c | 16 +- drivers/infiniband/hw/hns/Makefile | 4 +- drivers/infiniband/hw/hns/hns_roce_ah.c | 36 +- drivers/infiniband/hw/hns/hns_roce_cmd.h | 1 + drivers/infiniband/hw/hns/hns_roce_common.h | 33 - drivers/infiniband/hw/hns/hns_roce_cq.c | 68 +- drivers/infiniband/hw/hns/hns_roce_device.h | 52 +- drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 396 +---- drivers/infiniband/hw/hns/hns_roce_hw_v1.h | 14 +- drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 320 ++-- drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 7 +- drivers/infiniband/hw/hns/hns_roce_hw_v2_dfx.c | 35 + drivers/infiniband/hw/hns/hns_roce_main.c | 35 +- drivers/infiniband/hw/hns/hns_roce_mr.c | 6 +- drivers/infiniband/hw/hns/hns_roce_pd.c | 7 +- drivers/infiniband/hw/hns/hns_roce_qp.c | 50 +- drivers/infiniband/hw/hns/hns_roce_restrack.c | 126 ++ drivers/infiniband/hw/hns/hns_roce_srq.c | 52 +- drivers/infiniband/hw/i40iw/i40iw.h | 2 +- drivers/infiniband/hw/i40iw/i40iw_cm.c | 21 +- drivers/infiniband/hw/i40iw/i40iw_main.c | 5 +- drivers/infiniband/hw/i40iw/i40iw_verbs.c | 123 +- drivers/infiniband/hw/i40iw/i40iw_verbs.h | 3 +- drivers/infiniband/hw/mlx4/ah.c | 103 +- drivers/infiniband/hw/mlx4/cm.c | 36 +- drivers/infiniband/hw/mlx4/cq.c | 40 +- drivers/infiniband/hw/mlx4/doorbell.c | 6 +- drivers/infiniband/hw/mlx4/mad.c | 33 +- drivers/infiniband/hw/mlx4/main.c | 13 +- drivers/infiniband/hw/mlx4/mlx4_ib.h | 41 +- drivers/infiniband/hw/mlx4/mr.c | 7 +- drivers/infiniband/hw/mlx4/qp.c | 50 +- drivers/infiniband/hw/mlx4/srq.c | 59 +- drivers/infiniband/hw/mlx5/ah.c | 33 +- drivers/infiniband/hw/mlx5/cmd.c | 155 +- drivers/infiniband/hw/mlx5/cmd.h | 8 +- drivers/infiniband/hw/mlx5/cq.c | 47 +- drivers/infiniband/hw/mlx5/devx.c | 32 +- drivers/infiniband/hw/mlx5/flow.c | 99 +- drivers/infiniband/hw/mlx5/ib_rep.c | 109 +- drivers/infiniband/hw/mlx5/ib_rep.h | 13 +- drivers/infiniband/hw/mlx5/main.c | 662 ++++--- drivers/infiniband/hw/mlx5/mlx5_ib.h | 118 +- drivers/infiniband/hw/mlx5/mr.c | 52 +- drivers/infiniband/hw/mlx5/odp.c | 132 +- drivers/infiniband/hw/mlx5/qp.c | 161 +- drivers/infiniband/hw/mlx5/srq.c | 76 +- drivers/infiniband/hw/mlx5/srq.h | 7 +- drivers/infiniband/hw/mlx5/srq_cmd.c | 35 +- drivers/infiniband/hw/mthca/mthca_cq.c | 2 +- drivers/infiniband/hw/mthca/mthca_eq.c | 16 +- drivers/infiniband/hw/mthca/mthca_mr.c | 2 +- drivers/infiniband/hw/mthca/mthca_provider.c | 179 +- drivers/infiniband/hw/mthca/mthca_qp.c | 6 +- drivers/infiniband/hw/nes/nes_cm.c | 3 +- drivers/infiniband/hw/nes/nes_verbs.c | 168 +- drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 32 +- drivers/infiniband/hw/ocrdma/ocrdma_ah.h | 6 +- drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 18 +- drivers/infiniband/hw/ocrdma/ocrdma_hw.h | 6 +- drivers/infiniband/hw/ocrdma/ocrdma_main.c | 25 +- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 128 +- drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 24 +- drivers/infiniband/hw/qedr/main.c | 57 +- drivers/infiniband/hw/qedr/qedr.h | 11 +- drivers/infiniband/hw/qedr/qedr_iw_cm.c | 10 +- drivers/infiniband/hw/qedr/qedr_roce_cm.c | 11 +- drivers/infiniband/hw/qedr/verbs.c | 129 +- drivers/infiniband/hw/qedr/verbs.h | 27 +- drivers/infiniband/hw/qib/qib.h | 4 +- drivers/infiniband/hw/qib/qib_common.h | 2 +- drivers/infiniband/hw/qib/qib_driver.c | 20 +- drivers/infiniband/hw/qib/qib_fs.c | 12 +- drivers/infiniband/hw/qib/qib_iba7322.c | 4 +- drivers/infiniband/hw/qib/qib_init.c | 56 +- drivers/infiniband/hw/qib/qib_rc.c | 4 +- drivers/infiniband/hw/qib/qib_user_sdma.c | 5 +- drivers/infiniband/hw/qib/qib_verbs.h | 2 +- drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 15 +- drivers/infiniband/hw/usnic/usnic_ib_verbs.h | 12 +- drivers/infiniband/hw/usnic/usnic_uiom.c | 3 +- drivers/infiniband/hw/usnic/usnic_uiom.h | 3 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_cq.c | 17 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c | 28 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c | 15 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_qp.c | 3 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_srq.c | 43 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c | 56 +- drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h | 27 +- drivers/infiniband/sw/rdmavt/ah.c | 38 +- drivers/infiniband/sw/rdmavt/ah.h | 8 +- drivers/infiniband/sw/rdmavt/cq.c | 7 +- drivers/infiniband/sw/rdmavt/cq.h | 3 +- drivers/infiniband/sw/rdmavt/mmap.c | 16 +- drivers/infiniband/sw/rdmavt/mmap.h | 6 +- drivers/infiniband/sw/rdmavt/mr.c | 9 +- drivers/infiniband/sw/rdmavt/mr.h | 7 +- drivers/infiniband/sw/rdmavt/pd.c | 7 +- drivers/infiniband/sw/rdmavt/pd.h | 5 +- drivers/infiniband/sw/rdmavt/qp.c | 27 +- drivers/infiniband/sw/rdmavt/qp.h | 4 +- drivers/infiniband/sw/rdmavt/rc.c | 2 +- drivers/infiniband/sw/rdmavt/srq.c | 49 +- drivers/infiniband/sw/rdmavt/srq.h | 7 +- drivers/infiniband/sw/rdmavt/trace_qp.h | 2 +- drivers/infiniband/sw/rdmavt/trace_rc.h | 2 +- drivers/infiniband/sw/rdmavt/trace_tx.h | 2 +- drivers/infiniband/sw/rdmavt/vt.c | 3 + drivers/infiniband/sw/rxe/rxe_cq.c | 10 +- drivers/infiniband/sw/rxe/rxe_hdr.h | 2 +- drivers/infiniband/sw/rxe/rxe_loc.h | 16 +- drivers/infiniband/sw/rxe/rxe_mmap.c | 14 +- drivers/infiniband/sw/rxe/rxe_mr.c | 13 +- drivers/infiniband/sw/rxe/rxe_net.c | 46 +- drivers/infiniband/sw/rxe/rxe_pool.c | 4 +- drivers/infiniband/sw/rxe/rxe_qp.c | 15 +- drivers/infiniband/sw/rxe/rxe_queue.c | 22 +- drivers/infiniband/sw/rxe/rxe_queue.h | 15 +- drivers/infiniband/sw/rxe/rxe_srq.c | 14 +- drivers/infiniband/sw/rxe/rxe_verbs.c | 90 +- drivers/infiniband/sw/rxe/rxe_verbs.h | 4 +- drivers/infiniband/ulp/ipoib/ipoib_main.c | 13 +- drivers/infiniband/ulp/ipoib/ipoib_verbs.c | 3 +- drivers/infiniband/ulp/iser/Kconfig | 4 +- drivers/infiniband/ulp/iser/iscsi_iser.c | 7 +- drivers/infiniband/ulp/iser/iscsi_iser.h | 2 +- drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c | 60 +- .../net/ethernet/mellanox/mlx5/core/lib/clock.c | 30 +- include/linux/dynamic_debug.h | 11 + include/linux/mlx5/driver.h | 1 - include/linux/overflow.h | 12 +- include/linux/scatterlist.h | 10 +- include/rdma/ib_cache.h | 4 + include/rdma/ib_mad.h | 4 +- include/rdma/ib_smi.h | 2 +- include/rdma/ib_umem.h | 12 +- include/rdma/ib_umem_odp.h | 1 + include/rdma/ib_verbs.h | 430 ++++- include/rdma/iw_cm.h | 25 - include/rdma/opa_port_info.h | 2 +- include/rdma/opa_smi.h | 4 +- include/rdma/rdma_vt.h | 78 +- include/rdma/rdmavt_qp.h | 89 +- include/rdma/uverbs_std_types.h | 42 +- include/rdma/uverbs_types.h | 18 +- include/trace/events/ib_mad.h | 390 +++++ include/trace/events/ib_umad.h | 126 ++ include/uapi/rdma/efa-abi.h | 101 ++ include/uapi/rdma/mlx5-abi.h | 2 + include/uapi/rdma/mlx5_user_ioctl_cmds.h | 2 + include/uapi/rdma/mlx5_user_ioctl_verbs.h | 7 + include/uapi/rdma/rdma_netlink.h | 31 +- include/uapi/rdma/rdma_user_ioctl_cmds.h | 1 + lib/dynamic_debug.c | 37 + net/smc/smc_ib.c | 16 +- samples/bpf/Makefile | 3 + samples/bpf/ibumad_kern.c | 144 ++ samples/bpf/ibumad_user.c | 122 ++ 251 files changed, 12535 insertions(+), 4571 deletions(-) (diffstat from merge'd tree)