[GIT PULL] Please pull RDMA subsystem changes

From: Jason Gunthorpe
Date: Fri Oct 16 2020 - 14:52:03 EST


Hi Linus,

These are the proposed RDMA patches for 5.10.

A usual cycle for RDMA with a typical mix of driver and core subsystem
updates. There was a lot of activity in the last week on fixing up some small
patches that were merged during the rc8 period, so the top couple commits are
new things that haven't been in linux-next, but they are all rc-ish unbreaking
stuff.

There is a compilation break after merging this, the signature of
__sg_alloc_table_from_pages() was changed in this PR. The series that did this
has been reviewed and been in linux-next for a while.

You'll need to apply this fixup to the merge commit (it is in the tag
for-linus-merged for reference):

diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c
index 11fe9ff76fd572..8ee53839825338 100644
--- a/drivers/gpu/drm/drm_prime.c
+++ b/drivers/gpu/drm/drm_prime.c
@@ -807,6 +807,7 @@ struct sg_table *drm_prime_pages_to_sg(struct drm_device *dev,
struct page **pages, unsigned int nr_pages)
{
struct sg_table *sg = NULL;
+ struct scatterlist *sge;
size_t max_segment = 0;
int ret;

@@ -820,11 +821,13 @@ struct sg_table *drm_prime_pages_to_sg(struct drm_device *dev,
max_segment = dma_max_mapping_size(dev->dev);
if (max_segment == 0 || max_segment > SCATTERLIST_MAX_SEGMENT)
max_segment = SCATTERLIST_MAX_SEGMENT;
- ret = __sg_alloc_table_from_pages(sg, pages, nr_pages, 0,
- nr_pages << PAGE_SHIFT,
- max_segment, GFP_KERNEL);
- if (ret)
+ sge = __sg_alloc_table_from_pages(sg, pages, nr_pages, 0,
+ nr_pages << PAGE_SHIFT, max_segment,
+ NULL, 0, GFP_KERNEL);
+ if (IS_ERR(sge)) {
+ ret = PTR_ERR(sge);
goto out;
+ }

return sg;
out:

Thanks,
Jason

The following changes since commit 549738f15da0e5a00275977623be199fbbf7df50:

Linux 5.9-rc8 (2020-10-04 16:04:34 -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 c7a198c700763ac89abbb166378f546aeb9afb33:

RDMA/ucma: Fix use after free in destroy id flow (2020-10-16 14:07:08 -0300)

----------------------------------------------------------------
RDMA 5.10 pull request

The typical set of driver updates across the subsystem:

- Driver minor changes and bug fixes for mlx5, efa, rxe, vmw_pvrdma, hns,
usnic, qib, qedr, cxgb4, hns, bnxt_re

- Various rtrs fixes and updates

- Bug fix for mlx4 CM emulation for virtualization scenarios where MRA
wasn't working right

- Use tracepoints instead of pr_debug in the CM code

- Scrub the locking in ucma and cma to close more syzkaller bugs

- Use tasklet_setup in the subsystem

- Revert the idea that 'destroy' operations are not allowed to fail at
the driver level. This proved unworkable from a HW perspective.

- Revise how the umem API works so drivers make fewer mistakes using it

- XRC support for qedr

- Convert uverbs objects RWQ and MW to new the allocation scheme

- Large queue entry sizes for hns

- Use hmm_range_fault() for mlx5 On Demand Paging

- uverbs APIs to inspect the GID table instead of sysfs

- Move some of the RDMA code for building large page SGLs into
lib/scatterlist

----------------------------------------------------------------
Aharon Landau (3):
net/mlx5: Refactor query port speed functions
RDMA/mlx5: Delete duplicated mlx5_ptys_width enum
RDMA: Fix link active_speed size

Alex Dewar (3):
RDMA/qib: Remove superfluous fallthrough statements
RDMA/qib: Tidy up process_cc()
RDMA/ucma: Fix resource leak on error path

Alex Vesker (3):
RDMA/mlx5: Add sw_owner_v2 bit capability
RDMA/mlx5: Allow DM allocation for sw_owner_v2 enabled devices
RDMA/mlx5: Expose TIR and QP ICM address for sw_owner_v2 devices

Allen Pais (5):
RDMA/bnxt_re: Convert tasklets to use new tasklet_setup() API
RDMA/hfi1: Convert tasklets to use new tasklet_setup() API
RDMA/i40iw: Convert tasklets to use new tasklet_setup() API
RDMA/qib: Convert tasklets to use new tasklet_setup() API
RDMA/rxe: Convert tasklets to use new tasklet_setup() API

Alok Prasad (1):
RDMA/qedr: Endianness warnings cleanup

Avihai Horon (4):
RDMA/core: Change rdma_get_gid_attr returned error code
RDMA/core: Modify enum ib_gid_type and enum rdma_network_type
RDMA/core: Introduce new GID table query API
RDMA/uverbs: Expose the new GID query API to user space

Bob Pearson (8):
RDMA/rxe: Fix style warnings
RDMA/rxe: Add SPDX hdrs to rxe source files
RDMA/rxe: Address an issue with hardened user copy
RDMA/core: Added missing WR and WC opcodes
RDMA/rxe: Remove duplicate entries in struct rxe_mr
RDMA/rxe: Fix skb lifetime in rxe_rcv_mcast_pkt()
RDMA/rxe: Fix bug rejecting all multicast packets
RDMA/rxe: Handle skb_clone() failure in rxe_recv.c

Chuck Lever (3):
RDMA/core: Move the rdma_show_ib_cm_event() macro
RDMA/cm: Replace pr_debug() call sites with tracepoints
RDMA/cm: Add tracepoints to track MAD send operations

Colin Ian King (2):
RDMA/bnxt_re: Fix sizeof mismatch for allocation of pbl_tbl.
IB/rdmavt: Fix sizeof mismatch

Daniel Kranzdorf (1):
RDMA/efa: Add messages and RDMA read work requests HW stats

Dennis Dalessandro (1):
IB/hfi,rdmavt,qib,opa_vnic: Update MAINTAINERS

Gal Pressman (6):
RDMA/efa: Add a generic capability check helper
RDMA/efa: Be consistent with modify QP bitmask
RDMA/efa: Introduce SRD QP state machine
RDMA/efa: Introduce SRD RNR retry
RDMA/efa: Remove redundant udata check from alloc ucontext response
RDMA/efa: Group keep alive received counter with other SW stats

Gioh Kim (1):
RDMA/rtrs: Remove unused field of rtrs_iu

Håkon Bugge (7):
IB/mlx4: Add and improve logging
IB/mlx4: Add support for MRA
IB/mlx4: Separate tunnel and wire bufs parameters
IB/mlx4: Fix starvation in paravirt mux/demux
IB/mlx4: Add support for REJ due to timeout
IB/mlx4: Adjust delayed work when a dup is observed
IB/mlx4: Convert rej_tmout radix-tree to XArray

Jason Gunthorpe (59):
RDMA/cm: Remove unused cm_class
RDMA/ucma: Fix refcount 0 incr in ucma_get_ctx()
RDMA/ucma: Remove unnecessary locking of file->ctx_list in close
RDMA/ucma: Consolidate the two destroy flows
RDMA/ucma: Fix error cases around ucma_alloc_ctx()
RDMA/ucma: Remove mc_list and rely on xarray
RDMA/cma: Add missing locking to rdma_accept()
RDMA/ucma: Do not use file->mut to lock destroying
RDMA/ucma: Fix the locking of ctx->file
RDMA/ucma: Fix locking for ctx->events_reported
RDMA/ucma: Add missing locking around rdma_leave_multicast()
RDMA/ucma: Change backlog into an atomic
RDMA/ucma: Narrow file->mut in ucma_event_handler()
RDMA/ucma: Rework how new connections are passed through event delivery
RDMA/ucma: Remove closing and the close_wq
RDMA/core: Trigger a WARN_ON if the driver causes uobjects to become leaked
RDMA/umem: Fix signature of stub ib_umem_find_best_pgsz()
Merge tag 'v5.9-rc3' into rdma.git for-next
RDMA/core: Change how failing destroy is handled during uobj abort
RDMA/umem: Fix ib_umem_find_best_pgsz() for mappings that cross a page boundary
RDMA/umem: Prevent small pages from being returned by ib_umem_find_best_pgsz()
RDMA/umem: Use simpler logic for ib_umem_find_best_pgsz()
RDMA/umem: Add rdma_umem_for_each_dma_block()
RDMA/umem: Replace for_each_sg_dma_page with rdma_umem_for_each_dma_block
RDMA/umem: Split ib_umem_num_pages() into ib_umem_num_dma_blocks()
RDMA/efa: Use ib_umem_num_dma_pages()
RDMA/i40iw: Use ib_umem_num_dma_pages()
RDMA/qedr: Use rdma_umem_for_each_dma_block() instead of open-coding
RDMA/qedr: Use ib_umem_num_dma_blocks() instead of ib_umem_page_count()
RDMA/bnxt: Do not use ib_umem_page_count() or ib_umem_num_pages()
RDMA/hns: Use ib_umem_num_dma_blocks() instead of opencoding
RDMA/ocrdma: Use ib_umem_num_dma_blocks() instead of ib_umem_page_count()
RDMA/pvrdma: Use ib_umem_num_dma_blocks() instead of ib_umem_page_count()
RDMA/mlx4: Use ib_umem_num_dma_blocks()
RDMA/qedr: Remove fbo and zbva from the MR
RDMA/ocrdma: Remove fbo from MR
RDMA/cma: Fix locking for the RDMA_CM_CONNECT state
RDMA/cma: Make the locking for automatic state transition more clear
RDMA/cma: Fix locking for the RDMA_CM_LISTEN state
RDMA/cma: Remove cma_comp()
RDMA/cma: Combine cma_ndev_work with cma_work
RDMA/cma: Remove dead code for kernel rdmacm multicast
RDMA/cma: Consolidate the destruction of a cma_multicast in one place
RDMA/cma: Fix use after free race in roce multicast join
Merge branch 'mlx5_active_speed' into rdma.git for-next
Merge branch 'mlx_sw_owner_v2' into rdma.git for-next
RDMA/mlx5: Remove dead check for EAGAIN after alloc_mr_from_cache()
RDMA/mlx5: Use set_mkc_access_pd_addr_fields() in reg_create()
RDMA/mlx5: Make mkeys always owned by the kernel's PD when not enabled
RDMA/mlx5: Disable IB_DEVICE_MEM_MGT_EXTENSIONS if IB_WR_REG_MR can't work
RDMA/mlx5: Clarify what the UMR is for when creating MRs
RDMA/ucma: Rework ucma_migrate_id() to avoid races with destroy
RDMA/core: Remove ucontext->closing
RDMA/addr: Fix race with netevent_callback()/rdma_addr_cancel()
RDMA/bnxt_re: Use rdma_umem_for_each_dma_block()
Merge branch 'dynamic_sg' into rdma.git for-next
lib/scatterlist: Do not limit max_segment to PAGE_ALIGNED values
RDMA: Explicitly pass in the dma_device to ib_register_device
RDMA/rxe: Move the definitions for rxe_av.network_type to uAPI

Jiaran Zhang (2):
RDMA/hns: Add check for the validity of sl configuration
RDMA/hns: Solve the overflow of the calc_pg_sz()

Joe Perches (1):
MAINTAINERS: CISCO VIC LOW LATENCY NIC DRIVER

Julia Lawall (1):
RDMA/efa: Drop double zeroing for sg_init_table()

Kamal Heib (4):
RDMA/vmw_pvrdma: Fix kernel-doc documentation
RDMA/usnic: Remove the query_pkey callback
RDMA/qedr: Fix reported max_pkeys
RDMA/ipoib: Set rtnl_link_ops for ipoib interfaces

Keita Suzuki (1):
RDMA/qedr: Fix resource leak in qedr_create_qp

Lang Cheng (3):
RDMA/hns: Add a check for current state before modifying QP
RDMA/hns: Correct typo of hns_roce_create_cq()
RDMA/hns: Remove unused variables and definitions

Leon Romanovsky (31):
RDMA/mlx5: Simplify multiple else-if cases with switch keyword
RDMA/mlx5: Replace open-coded offsetofend() macro
RDMA: Remove constant domain argument from flow creation call
RDMA/mlx5: Fix potential race between destroy and CQE poll
RDMA: Restore ability to fail on PD deallocate
RDMA: Restore ability to fail on AH destroy
RDMA/mlx5: Issue FW command to destroy SRQ on reentry
RDMA: Restore ability to fail on SRQ destroy
RDMA/core: Delete function indirection for alloc/free kernel CQ
RDMA: Allow fail of destroy CQ
RDMA: Change XRCD destroy return value
RDMA: Restore ability to return error for destroy WQ
RDMA: Make counters destroy symmetrical
RDMA: Clean MW allocation and free flows
RDMA: Convert RWQ table logic to ib_core allocation scheme
RDMA/cma: Delete from restrack DB after successful destroy
RDMA/mlx5: Don't call to restrack recursively
RDMA/restrack: Count references to the verbs objects
RDMA/restrack: Simplify restrack tracking in kernel flows
RDMA/restrack: Improve readability in task name management
RDMA/mlx5: Embed GSI QP into general mlx5_ib QP
RDMA/mlx5: Reuse existing fields in parent QP storage object
RDMA/mlx5: Change GSI QP to have same creation flow like other QPs
RDMA/mlx5: Delete not needed GSI QP signal QP type
RDMA/mlx4: Embed GSI QP into general mlx4_ib QP
RDMA/mlx4: Prepare QP allocation to remove from the driver
RDMA/core: Align write and ioctl checks of QP types
RDMA/drivers: Remove udata check from special QP
RDMA/mthca: Combine special QP struct with mthca QP
RDMA/i40iw: Remove intermediate pointer that points to the same struct
overflow: Include header file with SIZE_MAX declaration

Lijun Ou (2):
RDMA/hns: Avoid unncessary initialization
RDMA/hns: Set the unsupported wr opcode

Liu Shixin (2):
RDMA/ipoib: Convert to use DEFINE_SEQ_ATTRIBUTE macro
RDMA/mlx5: Fix type warning of sizeof in __mlx5_ib_alloc_counters()

Maor Gottlieb (4):
RDMA/mlx5: Enable sniffer when device is in switchdev mode
lib/scatterlist: Add support in dynamic allocation of SG table from pages
RDMA/umem: Move to allocate SG table from pages
RDMA/ucma: Fix use after free in destroy id flow

Mark Zhang (3):
RDMA/mlx5: Add new IB rates support
IB/mlx5: Add tx_affinity support for DCI QP
IB/mlx5: Add DCT RoCE LAG support

Max Gurtovoy (1):
IB/isert: remove duplicated error prints

Md Haris Iqbal (1):
RDMA/rtrs-srv: Incorporate ib_register_client into rtrs server init

Michal Kalderon (8):
RDMA/qedr: Fix qp structure memory leak
RDMA/qedr: Fix doorbell setting
RDMA/qedr: Fix use of uninitialized field
RDMA/qedr: Fix return code if accept is called on a destroyed qp
qede: Notify qedr when mtu has changed
RDMA/qedr: Fix iWARP active mtu display
RDMA/qedr: Fix inline size returned for iWARP
RDMA/qedr: Fix function prototype parameters alignment

Mohammad Heib (1):
RDMA/rxe: prevent rxe creation on top of vlan interface

Parav Pandit (1):
RDMA/i40iw: Avoid typecast from void to pci_dev

Potnuri Bharat Teja (1):
RDMA/iw_cxgb4: Disable delayed ack by default

Rikard Falkeborn (2):
RDMA/core: Constify struct attribute_group
RDMA/rtrs: Constify static struct attribute_group

Sindhu, Devale (1):
i40iw: Add support to make destroy QP synchronous

Tvrtko Ursulin (2):
tools/testing/scatterlist: Rejuvenate bit-rotten test
tools/testing/scatterlist: Show errors in human readable form

Weihang Li (5):
RDMA/hns: Get udp sport num dynamically instead of using a fixed value
RDMA/hns: Refactor process about opcode in post_send()
RDMA/hns: Fix configuration of ack_req_freq in QPC
RDMA/hns: Fix missing sq_sig_type when querying QP
RDMA/hns: Support inline data in extented sge space for RC

Wenpeng Liang (4):
RDMA/hns: Add support for EQE in size of 64 Bytes
RDMA/hns: Add support for CQE in size of 64 Bytes
RDMA/hns: Add support for QPC in size of 512 Bytes
RDMA/hns: Fix the wrong value of rnr_retry when querying qp

Yangyang Li (2):
RDMA/hns: Add support for SCCC in size of 64 Bytes
RDMA/hns: Add interception for resizing SRQs

Yishai Hadas (4):
IB/core: Improve ODP to use hmm_range_fault()
IB/core: Enable ODP sync without faulting
RDMA/mlx5: Extend advice MR to support non faulting mode
RDMA/mlx5: Sync device with CPU pages upon ODP MR registration

Yuval Basson (1):
RDMA/qedr: Add support for user mode XRC-SRQ's

.clang-format | 1 +
Documentation/ABI/stable/sysfs-class-infiniband | 17 -
MAINTAINERS | 17 +-
drivers/gpu/drm/drm_prime.c | 11 +-
drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 12 +-
drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c | 15 +-
drivers/infiniband/Kconfig | 1 +
drivers/infiniband/core/Makefile | 2 +-
drivers/infiniband/core/addr.c | 11 +-
drivers/infiniband/core/cache.c | 72 ++-
drivers/infiniband/core/cm.c | 126 ++--
drivers/infiniband/core/cm_trace.c | 15 +
drivers/infiniband/core/cm_trace.h | 414 ++++++++++++++
drivers/infiniband/core/cma.c | 635 +++++++++++----------
drivers/infiniband/core/cma_configfs.c | 9 +-
drivers/infiniband/core/cma_trace.h | 40 --
drivers/infiniband/core/core_priv.h | 13 +-
drivers/infiniband/core/counters.c | 15 +-
drivers/infiniband/core/cq.c | 39 +-
drivers/infiniband/core/device.c | 77 +--
drivers/infiniband/core/rdma_core.c | 34 +-
drivers/infiniband/core/restrack.c | 161 +++---
drivers/infiniband/core/restrack.h | 10 +-
drivers/infiniband/core/sysfs.c | 15 +-
drivers/infiniband/core/ucma.c | 542 ++++++++----------
drivers/infiniband/core/umem.c | 139 ++---
drivers/infiniband/core/umem_odp.c | 291 ++++------
drivers/infiniband/core/uverbs_cmd.c | 93 ++-
drivers/infiniband/core/uverbs_main.c | 7 +-
drivers/infiniband/core/uverbs_std_types.c | 15 +-
.../infiniband/core/uverbs_std_types_counters.c | 4 +-
drivers/infiniband/core/uverbs_std_types_cq.c | 8 +-
drivers/infiniband/core/uverbs_std_types_device.c | 199 ++++++-
drivers/infiniband/core/uverbs_std_types_wq.c | 2 +-
drivers/infiniband/core/verbs.c | 114 ++--
drivers/infiniband/hw/bnxt_re/bnxt_re.h | 2 +-
drivers/infiniband/hw/bnxt_re/ib_verbs.c | 90 +--
drivers/infiniband/hw/bnxt_re/ib_verbs.h | 8 +-
drivers/infiniband/hw/bnxt_re/main.c | 3 +-
drivers/infiniband/hw/bnxt_re/qplib_fp.c | 7 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 11 +-
drivers/infiniband/hw/bnxt_re/qplib_res.c | 30 +-
drivers/infiniband/hw/bnxt_re/qplib_res.h | 3 +-
drivers/infiniband/hw/cxgb4/cm.c | 4 +-
drivers/infiniband/hw/cxgb4/cq.c | 3 +-
drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 7 +-
drivers/infiniband/hw/cxgb4/mem.c | 40 +-
drivers/infiniband/hw/cxgb4/provider.c | 11 +-
drivers/infiniband/hw/cxgb4/qp.c | 3 +-
drivers/infiniband/hw/efa/efa.h | 14 +-
drivers/infiniband/hw/efa/efa_admin_cmds_defs.h | 69 ++-
drivers/infiniband/hw/efa/efa_com_cmd.c | 28 +-
drivers/infiniband/hw/efa/efa_com_cmd.h | 18 +
drivers/infiniband/hw/efa/efa_main.c | 4 +-
drivers/infiniband/hw/efa/efa_verbs.c | 258 +++++++--
drivers/infiniband/hw/hfi1/sdma.c | 22 +-
drivers/infiniband/hw/hfi1/verbs.c | 2 +-
drivers/infiniband/hw/hns/hns_roce_ah.c | 23 +-
drivers/infiniband/hw/hns/hns_roce_alloc.c | 3 +-
drivers/infiniband/hw/hns/hns_roce_cq.c | 27 +-
drivers/infiniband/hw/hns/hns_roce_device.h | 74 +--
drivers/infiniband/hw/hns/hns_roce_hem.c | 8 +-
drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 51 +-
drivers/infiniband/hw/hns/hns_roce_hw_v1.h | 4 +-
drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 534 ++++++++++++-----
drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 43 +-
drivers/infiniband/hw/hns/hns_roce_main.c | 19 +-
drivers/infiniband/hw/hns/hns_roce_mr.c | 81 +--
drivers/infiniband/hw/hns/hns_roce_pd.c | 3 +-
drivers/infiniband/hw/hns/hns_roce_qp.c | 80 +--
drivers/infiniband/hw/hns/hns_roce_srq.c | 5 +-
drivers/infiniband/hw/i40iw/i40iw.h | 9 +-
drivers/infiniband/hw/i40iw/i40iw_cm.c | 10 +-
drivers/infiniband/hw/i40iw/i40iw_hw.c | 4 +-
drivers/infiniband/hw/i40iw/i40iw_main.c | 16 +-
drivers/infiniband/hw/i40iw/i40iw_pble.c | 4 +-
drivers/infiniband/hw/i40iw/i40iw_type.h | 3 +-
drivers/infiniband/hw/i40iw/i40iw_utils.c | 63 +-
drivers/infiniband/hw/i40iw/i40iw_verbs.c | 64 ++-
drivers/infiniband/hw/i40iw/i40iw_verbs.h | 3 +-
drivers/infiniband/hw/mlx4/ah.c | 5 -
drivers/infiniband/hw/mlx4/cm.c | 152 ++++-
drivers/infiniband/hw/mlx4/cq.c | 4 +-
drivers/infiniband/hw/mlx4/mad.c | 158 ++---
drivers/infiniband/hw/mlx4/main.c | 45 +-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 62 +-
drivers/infiniband/hw/mlx4/mr.c | 35 +-
drivers/infiniband/hw/mlx4/qp.c | 345 +++++------
drivers/infiniband/hw/mlx4/srq.c | 8 +-
drivers/infiniband/hw/mlx5/ah.c | 9 +-
drivers/infiniband/hw/mlx5/cmd.c | 8 +-
drivers/infiniband/hw/mlx5/cmd.h | 4 +-
drivers/infiniband/hw/mlx5/counters.c | 7 +-
drivers/infiniband/hw/mlx5/cq.c | 16 +-
drivers/infiniband/hw/mlx5/fs.c | 148 ++---
drivers/infiniband/hw/mlx5/gsi.c | 154 ++---
drivers/infiniband/hw/mlx5/main.c | 70 ++-
drivers/infiniband/hw/mlx5/mem.c | 4 +-
drivers/infiniband/hw/mlx5/mlx5_ib.h | 100 +++-
drivers/infiniband/hw/mlx5/mr.c | 189 +++---
drivers/infiniband/hw/mlx5/odp.c | 56 +-
drivers/infiniband/hw/mlx5/qp.c | 182 +++---
drivers/infiniband/hw/mlx5/qp.h | 4 +-
drivers/infiniband/hw/mlx5/qpc.c | 5 +-
drivers/infiniband/hw/mlx5/srq.c | 23 +-
drivers/infiniband/hw/mlx5/srq.h | 2 +-
drivers/infiniband/hw/mlx5/srq_cmd.c | 22 +-
drivers/infiniband/hw/mlx5/wr.c | 27 +-
drivers/infiniband/hw/mthca/mthca_dev.h | 2 +-
drivers/infiniband/hw/mthca/mthca_provider.c | 39 +-
drivers/infiniband/hw/mthca/mthca_provider.h | 27 +-
drivers/infiniband/hw/mthca/mthca_qp.c | 75 ++-
drivers/infiniband/hw/ocrdma/ocrdma.h | 1 -
drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 3 +-
drivers/infiniband/hw/ocrdma/ocrdma_ah.h | 2 +-
drivers/infiniband/hw/ocrdma/ocrdma_hw.c | 5 +-
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 4 +-
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 38 +-
drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 6 +-
drivers/infiniband/hw/qedr/main.c | 31 +-
drivers/infiniband/hw/qedr/qedr.h | 33 ++
drivers/infiniband/hw/qedr/qedr_iw_cm.c | 6 +-
drivers/infiniband/hw/qedr/verbs.c | 438 ++++++++------
drivers/infiniband/hw/qedr/verbs.h | 11 +-
drivers/infiniband/hw/qib/qib.h | 6 +-
drivers/infiniband/hw/qib/qib_iba7322.c | 7 +-
drivers/infiniband/hw/qib/qib_mad.c | 52 +-
drivers/infiniband/hw/qib/qib_sdma.c | 10 +-
drivers/infiniband/hw/usnic/usnic_ib_main.c | 5 +-
drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 18 +-
drivers/infiniband/hw/usnic/usnic_ib_verbs.h | 6 +-
drivers/infiniband/hw/vmw_pvrdma/pvrdma_cq.c | 7 +-
drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c | 4 +-
drivers/infiniband/hw/vmw_pvrdma/pvrdma_misc.c | 9 +-
drivers/infiniband/hw/vmw_pvrdma/pvrdma_mr.c | 3 +-
drivers/infiniband/hw/vmw_pvrdma/pvrdma_qp.c | 9 +-
drivers/infiniband/hw/vmw_pvrdma/pvrdma_srq.c | 7 +-
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c | 15 +-
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h | 10 +-
drivers/infiniband/sw/rdmavt/ah.c | 3 +-
drivers/infiniband/sw/rdmavt/ah.h | 2 +-
drivers/infiniband/sw/rdmavt/cq.c | 3 +-
drivers/infiniband/sw/rdmavt/cq.h | 2 +-
drivers/infiniband/sw/rdmavt/pd.c | 3 +-
drivers/infiniband/sw/rdmavt/pd.h | 2 +-
drivers/infiniband/sw/rdmavt/srq.c | 3 +-
drivers/infiniband/sw/rdmavt/srq.h | 2 +-
drivers/infiniband/sw/rdmavt/vt.c | 10 +-
drivers/infiniband/sw/rxe/rxe.c | 43 +-
drivers/infiniband/sw/rxe/rxe.h | 29 +-
drivers/infiniband/sw/rxe/rxe_av.c | 29 +-
drivers/infiniband/sw/rxe/rxe_comp.c | 32 +-
drivers/infiniband/sw/rxe/rxe_cq.c | 35 +-
drivers/infiniband/sw/rxe/rxe_hdr.h | 29 +-
drivers/infiniband/sw/rxe/rxe_hw_counters.c | 29 +-
drivers/infiniband/sw/rxe/rxe_hw_counters.h | 29 +-
drivers/infiniband/sw/rxe/rxe_icrc.c | 29 +-
drivers/infiniband/sw/rxe/rxe_loc.h | 29 +-
drivers/infiniband/sw/rxe/rxe_mcast.c | 29 +-
drivers/infiniband/sw/rxe/rxe_mmap.c | 29 +-
drivers/infiniband/sw/rxe/rxe_mr.c | 54 +-
drivers/infiniband/sw/rxe/rxe_net.c | 39 +-
drivers/infiniband/sw/rxe/rxe_net.h | 29 +-
drivers/infiniband/sw/rxe/rxe_opcode.c | 29 +-
drivers/infiniband/sw/rxe/rxe_opcode.h | 29 +-
drivers/infiniband/sw/rxe/rxe_param.h | 29 +-
drivers/infiniband/sw/rxe/rxe_pool.c | 89 +--
drivers/infiniband/sw/rxe/rxe_pool.h | 36 +-
drivers/infiniband/sw/rxe/rxe_qp.c | 32 +-
drivers/infiniband/sw/rxe/rxe_queue.c | 29 +-
drivers/infiniband/sw/rxe/rxe_queue.h | 29 +-
drivers/infiniband/sw/rxe/rxe_recv.c | 68 ++-
drivers/infiniband/sw/rxe/rxe_req.c | 33 +-
drivers/infiniband/sw/rxe/rxe_resp.c | 29 +-
drivers/infiniband/sw/rxe/rxe_srq.c | 29 +-
drivers/infiniband/sw/rxe/rxe_sysfs.c | 35 +-
drivers/infiniband/sw/rxe/rxe_task.c | 37 +-
drivers/infiniband/sw/rxe/rxe_task.h | 33 +-
drivers/infiniband/sw/rxe/rxe_verbs.c | 52 +-
drivers/infiniband/sw/rxe/rxe_verbs.h | 48 +-
drivers/infiniband/sw/siw/siw_main.c | 8 +-
drivers/infiniband/sw/siw/siw_verbs.c | 9 +-
drivers/infiniband/sw/siw/siw_verbs.h | 6 +-
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 6 +-
drivers/infiniband/ulp/ipoib/ipoib_fs.c | 50 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 2 +
drivers/infiniband/ulp/ipoib/ipoib_netlink.c | 11 +
drivers/infiniband/ulp/ipoib/ipoib_vlan.c | 2 +
drivers/infiniband/ulp/isert/ib_isert.c | 15 +-
drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c | 6 +-
drivers/infiniband/ulp/rtrs/rtrs-pri.h | 1 -
drivers/infiniband/ulp/rtrs/rtrs-srv-sysfs.c | 4 +-
drivers/infiniband/ulp/rtrs/rtrs-srv.c | 76 ++-
drivers/infiniband/ulp/rtrs/rtrs-srv.h | 7 +
.../ethernet/mellanox/mlx5/core/ipoib/ethtool.c | 31 +-
drivers/net/ethernet/mellanox/mlx5/core/port.c | 23 +-
drivers/net/ethernet/qlogic/qed/qed_rdma.c | 15 +-
drivers/net/ethernet/qlogic/qede/qede_ethtool.c | 4 +-
drivers/net/ethernet/qlogic/qede/qede_rdma.c | 17 +
include/linux/mlx5/mlx5_ifc.h | 6 +-
include/linux/mlx5/port.h | 15 +-
include/linux/overflow.h | 1 +
include/linux/qed/qed_rdma_if.h | 2 -
include/linux/qed/qede_rdma.h | 4 +-
include/linux/scatterlist.h | 38 +-
include/rdma/ib_cache.h | 3 +
include/rdma/ib_cm.h | 3 -
include/rdma/ib_umem.h | 46 +-
include/rdma/ib_umem_odp.h | 21 +-
include/rdma/ib_verbs.h | 212 ++-----
include/rdma/rdma_cm.h | 46 +-
include/rdma/restrack.h | 21 +-
include/trace/events/rdma.h | 41 +-
include/trace/events/rpcrdma.h | 1 +
include/uapi/rdma/efa-abi.h | 1 +
include/uapi/rdma/hns-abi.h | 4 +-
include/uapi/rdma/ib_user_ioctl_cmds.h | 16 +
include/uapi/rdma/ib_user_ioctl_verbs.h | 15 +
include/uapi/rdma/ib_user_verbs.h | 11 +
include/uapi/rdma/rdma_user_rxe.h | 12 +-
lib/scatterlist.c | 133 ++++-
tools/testing/scatterlist/Makefile | 3 +-
tools/testing/scatterlist/linux/mm.h | 35 ++
tools/testing/scatterlist/main.c | 53 +-
224 files changed, 5209 insertions(+), 4693 deletions(-)
(diffstat from tag for-linus-merged)

Attachment: signature.asc
Description: PGP signature