[GIT PULL] Please pull RDMA subsystem changes

From: Jason Gunthorpe
Date: Mon Dec 24 2018 - 17:16:35 EST


Hi Linus,

These are the proposed RDMA patches for 4.21.

There is a conflict with the net tree merged in 4.20 and the Mellanox shared
tree. DaveM has a resolution for this in his net-next tree already, but if you
merge RDMA first, here is the resolution:

struct mlx5_ifc_flow_table_eswitch_cap_bits {
- u8 reserved_at_0[0x1c];
- u8 fdb_multi_path_to_table[0x1];
- u8 reserved_at_1d[0x1];
+ u8 reserved_at_0[0x1a];
u8 multi_fdb_encap[0x1];
- u8 reserved_at_1f[0x1e1];
+ u8 reserved_at_1b[0x1];
+ u8 fdb_multi_path_to_table[0x1];
+ u8 reserved_at_1d[0x3];
+
+ u8 reserved_at_20[0x1e0];

There is also a conflict in -next with the NFS tree, in this case the correct
resolution is to continue to delete net/sunrpc/xprtrdma/fmr_ops.c

Things got a bit busy in a rush up to the US holiday season, so we may see a
busier early -rc cycle, I've seen a few thing that suggest there are some new
bugs now. The major changes to the uapi will hopefully encourage all the
driver maintainer do to early testing.

This PR is generated off v4.20, typically we've waited until net-next is
merged. For this reason you will see below a large number of patches that
duplicate ones in net-next from the Mellanox shared branch.

The tag for-linus-merged with my merge resolution to your tree is also
available to pull.

The following changes since commit 40e020c129cfc991e8ab4736d2665351ffd1468d:

Linux 4.20-rc6 (2018-12-09 15:31:00 -0800)

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 f617e5ffe04fd46010b618c9eeadaa04588704c9:

RDMA/srpt: Use kmem_cache_free() instead of kfree() (2018-12-22 16:07:47 -0700)

----------------------------------------------------------------
4.21 merge window pull request

This has been a fairly typical cycle, with the usual sorts of driver
updates. Several series continue to come through which improve and
modernize various parts of the core code, and we finally are starting to
get the uAPI command interface cleaned up.

- Various driver fixes for bnxt_re, cxgb3/4, hfi1, hns, i40iw, mlx4, mlx5,
qib, rxe, usnic

- Rework the entire syscall flow for uverbs to be able to run over
ioctl(). Finally getting past the historic bad choice to use write()
for command execution

- More functional coverage with the mlx5 'devx' user API

- Start of the HFI1 series for 'TID RDMA'

- SRQ support in the hns driver

- Support for new IBTA defined 2x lane widths

- A big series to consolidate all the driver function pointers into
a big struct and have drivers provide a 'static const' version of the
struct instead of open coding initialization

- New 'advise_mr' uAPI to control device caching/loading of page tables

- Support for inline data in SRPT

- Modernize how umad uses the driver core and creates cdev's and sysfs
files

- First steps toward removing 'uobject' from the view of the drivers

----------------------------------------------------------------
Alex Vesker (1):
IB/mlx5: Enable TX on a DEVX flow table

Allen Pais (1):
RDMA/hns: prefer dma_zalloc_coherent to dma_alloc_coherent/memse

Andrew Boyer (2):
RDMA/rxe: Distinguish between down links and disabled links
RDMA/rxe: Add link_down, rdma_sends, rdma_recvs stats counters

Artemy Kovalyov (1):
IB/mlx5: Allow modify AV in DCI QP to RTR

Ashutosh Dixit (1):
IB/hfi1: Consider LMC in 16B/bypass ingress packet check

Bart Van Assche (15):
include/scsi/srp.h: Move response flag definitions into this file
include/scsi/srp.h: Add support for immediate data
RDMA/srp: Document srp_parse_in() arguments
RDMA/srp: Handle large SCSI CDBs correctly
RDMA/srp: Propagate ib_post_send() failures to the SCSI mid-layer
RDMA/srp: Move srp_rdma_ch.max_ti_iu_len declaration
RDMA/srp: Rework handling of the maximum information unit length
RDMA/srp: Add support for immediate data
RDMA/srpt: Fix a use-after-free in the channel release code
RDMA/srpt: Improve coding style conformance
RDMA/srpt: Join split strings
RDMA/srpt: Make kernel-doc headers complete
RDMA/srpt: Remove driver version and release date
RDMA/srpt: Rework the srpt_alloc_srq() error path
RDMA/srpt: Add support for immediate data

Chuck Lever (1):
rxe: IB_WR_REG_MR does not capture MR's iova field

Colin Ian King (3):
IB/qib: fix spelling mistake "colescing" -> "coalescing"
RDMA/drivers: Fix spelling mistake "initalize" -> "initialize"
IB/usnic: fix spelling mistake "miniumum" -> "minimum"

Dan Carpenter (4):
IB/qib: Fix an error code in qib_sdma_verbs_send()
RDMA/hns: Fix an error code in hns_roce_create_srq()
IB/uverbs: Signedness bug in UVERBS_HANDLER()
RDMA/mlx5: Signedness bug in UVERBS_HANDLER()

Daniel Jurgens (1):
net/mlx5: When fetching CQEs return CQE instead of void pointer

Danit Goldberg (3):
net/mlx5: Expose packet based credit mode
IB/mlx5: Add packet based credit mode support
IB/mlx5: Report packet based credit mode device capability

Devesh Sharma (1):
RDMA/bnxt_re: Increase depth of control path command queue

Doug Ledford (4):
Merge branch 'write-handler-consistent-flow' into for-next
Merge 'mlx5-next' into mlx5-devx
Merge branch 'mlx5-devx' into wip/dl-for-next
IB/mlx5: Fix compile issue when ODP disabled

Eli Britstein (3):
net/mlx5: Introduce extended destination fields
net/mlx5: E-Switch, Change vhca id valid bool field to bit flag
net/mlx5: Support extended destination format in flow steering command

Eyal Davidovich (1):
net/mlx5: Add monitor commands layout and event data

Gal Pressman (7):
net/mlx5: Fix offsets of ifc reserved fields
RDMA/vmw_pvrdma: Use atomic memory allocation in create AH
RDMA/mlx5: Fix function name typo 'fileds' -> 'fields'
RDMA: Mark if create address handle is in a sleepable context
RDMA: Mark if destroy address handle is in a sleepable context
RDMA/bnxt_re: Make use of create AH sleepable flag
RDMA/bnxt_re: Make use of destroy AH sleepable flag

Guy Levi (2):
IB/mlx5: Use fragmented SRQ's buffer for in-kernel users
IB/mlx5: Use fragmented QP's buffer for in-kernel users

Huy Nguyen (1):
IB/mlx5: Fix long EEH recover time with NVMe offloads

Jason Gunthorpe (38):
Merge branch 'mlx5-next' into rdma.git
RDMA/mlx5: Do not generate the uabi specs unconditionally
RDMA/uverbs: Use a linear list to describe the compiled-in uapi
RDMA/uverbs: Factor out the add/get pattern into a helper
RDMA/uverbs: Add helpers to mark uapi functions as unsupported
RDMA/mlx5: Use the uapi disablement APIs instead of code
RDMA/uverbs: Require all objects to have a driver destroy function
RDMA/verbs: Store the write/write_ex uapi entry points in the uverbs_api
RDMA/uverbs: Convert the write interface to use uverbs_api
RDMA/uverbs: Make all the method functions in uverbs_cmd static
RDMA/uverbs: Check for NULL driver methods for every write call
RDMA/uverbs: Add missing driver_data
RDMA/uverbs: Replace ib_uverbs_file with uverbs_attr_bundle for write
RDMA/uverbs: Make write() handlers return 0 on success
RDMA/uverbs: Do not pass ib_uverbs_file to ioctl methods
RDMA/uverbs: Add structure size info to write commands
RDMA/uverbs: Prohibit write() calls with too small buffers
RDMA/uverbs: Use uverbs_attr_bundle to pass udata for write_ex
RDMA/uverbs: Use uverbs_attr_bundle to pass udata for write
RDMA/uverbs: Use uverbs_attr_bundle to pass udata for ioctl()
RDMA/uverbs: Remove out_len checks that are now done by the core
RDMA/uverbs: Use uverbs_attr_bundle to pass ucore for write/write_ex
RDMA/uverbs: Get rid of the 'callback' scheme in the compat path
RDMA/uverbs: Use uverbs_response() for remaining response copying
RDMA/uverbs: Use uverbs_request() for request copying
RDMA/uverbs: Use uverbs_request() and core for write_ex handlers
RDMA/uverbs: Fill in the response for IB_USER_VERBS_EX_CMD_MODIFY_QP
RDMA/uverbs: Simplify ib_uverbs_ex_query_device
RDMA/uverbs: Add a simple iterator interface for reading the command
RDMA/uverbs: Use the iterator for ib_uverbs_unmarshall_recv()
RDMA/uverbs: Do not check the input length on create_cq/qp paths
RDMA/uverbs: Use only attrs for the write() handler signature
Merge branch 'mlx5-packet-credit-fc' into rdma.git
Merge tag 'v4.20-rc6' into rdma.git for-next
RDMA/uverbs: Implement an ioctl that can call write and write_ex handlers
RDMA/uverbs: Add a method to introspect handles in a context
Merge branch 'mlx5-next' into rdma.git
IB/mlx5: Fix wrong error unwind

Kaike Wan (4):
IB/hfi1: Dump pio info for non-user send contexts
IB/hfi1: Ignore LNI errors before DC8051 transitions to Polling state
IB/hfi1: Unreserve a reserved request when it is completed
IB/hfi1: Add OPFN and TID RDMA capability bits

Kamal Heib (20):
RDMA/core: Introduce ib_device_ops
RDMA/bnxt_re: Initialize ib_device_ops struct
RDMA/cxgb3: Initialize ib_device_ops struct
RDMA/cxgb4: Initialize ib_device_ops struct
RDMA/hfi1: Initialize ib_device_ops struct
RDMA/hns: Initialize ib_device_ops struct
RDMA/i40iw: Initialize ib_device_ops struct
RDMA/mlx4: Initialize ib_device_ops struct
RDMA/mlx5: Initialize ib_device_ops struct
RDMA/mthca: Initialize ib_device_ops struct
RDMA/nes: Initialize ib_device_ops struct
RDMA/ocrdma: Initialize ib_device_ops struct
RDMA/qedr: Initialize ib_device_ops struct
RDMA/qib: Initialize ib_device_ops struct
RDMA/usnic: Initialize ib_device_ops struct
RDMA/vmw_pvrdma: Initialize ib_device_ops struct
RDMA/rxe: Initialize ib_device_ops struct
RDMA/rdmavt: Initialize ib_device_ops struct
RDMA: Start use ib_device_ops
RDMA/i40iw: Make sure to initialize ib_device_ops

Leon Romanovsky (22):
RDMA/qib: Remove all occurrences of BUG_ON()
RDMA/restrack: Track ucontext
RDMA/uverbs: Annotate alloc/deallloc paths with context tracking
RDMA/nldev: Export to user space number of contexts
net/mlx5: Align SRQ licenses and copyright information
net/mlx5: Remove dead transobj code
net/mlx5: Remove not-used lib/eq.h header file
net/mlx5: Remove references to local mlx5_core functions
net/mlx5: Move SRQ functions to RDMA part
RDMA/mlx5: Remove SRQ signature global flag
RDMA/mlx5: Use stages for callback to setup and release DEVX
RDMA/mlx5: Update SRQ functions signatures to mlx5_ib format
RDMA/mlx5: Initialize SRQ tables on mlx5_ib
RDMA/mlx5: Unfold create RMP function
RDMA/mlx5: Unfold modify RMP function
RDMA/uverbs: Fix typo in string concatenation macro
RDMA/mlx5: Fail early if user tries to create flows on IB representors
RDMA/uverbs: Optimize clearing of extra bytes in response
RDMA/ocrdma: Use PCI-ID as an identification in debugfs
net/mlx5: Continue driver initialization despite debugfs failure
RDMA/mlx5: Delete unreachable handle_atomic code by simplifying SW completion
net/mlx5: Add shared Q counter bits

Lijun Ou (9):
RDMA/hns: Eanble SRQ capacity for hip08
RDMA/hns: Init SRQ table for hip08
RDMA/hns: Add SRQ support for hip08 kernel mode
RDMA/hns: Add SRQ asynchronous event support
RDMA/hns: Init qp context when modify qp from reset to init
RDMA/hns: Encapsulate and simplify qp state transition
RDMA/hns: Fix the bug while use multi-hop of pbl
RDMA/hns: Update posting & querying mailbox
RDMA/hns: Bugfix for RoCE loopback test

Mark Bloch (2):
RDMA/mlx5: Attach a DEVX counter via raw flow creation
IB/mlx5: Unify e-switch representors load approach between uplink and VFs

Michael Guralnik (9):
IB/core: Add CapabilityMask2 to port attributes
IB/core: Add 2X port width
IB/core: Add new IB rates
IB/mlx5: Report CapabilityMask2 in ib_query_port
IB/mlx5: Add HDR speed support to query port
IB/mlx5: Add 2X width support to query_port
IB/core: uverbs copy to struct or zero helper
RDMA/nldev: Expose port_cap_flags2
IB/core: Move query port to ioctl

Michael J. Ruhl (2):
IB/hfi1: Limit VNIC use of SDMA engines to the available count
IB/hfi1: Incorrect sizing of sge for PIO will OOPs

Mike Marciniszyn (3):
IB/hfi1: Allow the driver to initialize QP priv struct
IB/hfi1: Close VNIC sdma_progress sleep window
IB/hfi1: Reduce lock contention on iowait_lock for sdma and pio

Mikhael Goikhman (3):
net/mlx5: Rework handling of port module events
net/mlx5: Add support for PCIe power slot exceeded error in PME
net/mlx5: Add support for plugged-disabled cable status in PME

Mitko Haralanov (1):
IB/hfi1: Correctly process FECN and BECN in packets

Moni Shoua (10):
net/mlx5: Release resource on error flow
net/mlx5: Add interface to hold and release core resources
net/mlx5: Enumerate page fault types
IB/mlx5: Lock QP during page fault handling
net/mlx5: Return success for PAGE_FAULT_RESUME in internal error state
net/mlx5: Use multi threaded workqueue for page fault handling
IB/mlx5: Improve ODP debugging messages
IB/uverbs: Add helper to get array size from ptr attribute
IB/uverbs: Add support to advise_mr
IB/mlx5: Add advise_mr() support

Or Gerlitz (2):
net/mlx5: Remove the get protocol device interface entry
IB/mlx5: Simplify netdev unbinding

Oz Shlomo (1):
net/mlx5: Revise gre and nvgre key formats

Parav Pandit (11):
RDMA/core: Remove unused header files mm.h, socket.h, scatterlist.h
RDMA/cma: Move cma module specific functions to cma_priv.h
RDMA/core: Sync unregistration with netlink commands
RDMA/core: Delete RoCE GID in hw when corresponding IP is deleted
RDMA/uverbs: Add an ioctl method to destroy an object
IB/rxe: Make counters thread safe
IB/umad: Simplify and avoid dynamic allocation of class
IB/umad: Avoid destroying device while it is accessed
IB/umad: Refactor code to use cdev_device_add()
IB/umad: Use class_groups and let core create class file
IB/umad: Start using dev_groups of class

Parvi Kaustubhi (2):
MAINTAINERS: Update usnic driver maintainers
IB/usnic: Fix potential deadlock

Qian Cai (1):
mlx4: Use snprintf instead of complicated strcpy

Rami Rosen (1):
IB/uverbs: fix a typo

Roi Dayan (2):
net/mlx5: Split the activate lag function into two routines
net/mlx5: Add lag affinity info to log

Sabyasachi Gupta (2):
infiniband/hw/cxgb3/cxio_hal.c: Use dma_zalloc_coherent
infiniband/hw/cxgb4/qp.c: Use dma_zalloc_coherent

Saeed Mahameed (38):
net/mlx5: EQ, Use the right place to store/read IRQ affinity hint
net/mlx5: EQ, Remove unused fields and structures
net/mlx5: EQ, No need to store eq index as a field
net/mlx5: EQ, Remove redundant completion EQ list lock
net/mlx5: EQ, Move all EQ logic to eq.c
net/mlx5: EQ, Create all EQs in one place
net/mlx5: EQ, irq_info and rmap belong to eq_table
net/mlx5: EQ, Privatize eq_table and friends
net/mlx5: EQ, Different EQ types
net/mlx5: EQ, Generic EQ
{net,IB}/mlx5: Move Page fault EQ and ODP logic to RDMA
net/mlx5: EQ, Make EQE access methods inline
net/mlx5: EQ, Introduce atomic notifier chain subscription API
net/mlx5: FWTrace, Use async events chain
net/mlx5: FPGA, Use async events chain
net/mlx5: Clock, Use async events chain
net/mlx5: E-Switch, Use async events chain
net/mlx5: FWPage, Use async events chain
net/mlx5: CmdIF, Use async events chain
net/mlx5: Resource tables, Use async events chain
net/mlx5: CQ ERR, Use async events chain
net/mlx5: Device events, Use async events chain
net/mlx5: Improve core device events handling
net/mlx5: Driver events notifier API
net/mlx5: Allow port change event to be forwarded to driver notifiers chain
net/mlx5e: Use the new mlx5 core notifier API
net/mlx5: Forward all mlx5 events to mlx5 notifiers chain
IB/mlx5: Use the new mlx5 core notifier API
net/mlx5: Remove unused events callback and logic
IB/mlx5: Handle raw port change event rather than the software version
net/mlx5: Allow forwarding event type general event as is
IB/mlx5: Handle raw delay drop general event
net/mlx5: Remove all deprecated software versions of FW events
net/mlx5: Forward QP/WorkQueues resource events
net/mlx5: Forward SRQ resource events
net/mlx5: Debug print for forwarded async events
net/mlx5: Move flow counters data structures from flow steering header
net/mlx5: Use lowercase 'X' for hex values

Sagi Grimberg (3):
rxe: fix error completion wr_id and qp_num
mlx5: remove support for ib_get_vector_affinity
i40iw: remove support for ib_get_vector_affinity

Selvin Xavier (1):
RDMA/bnxt_re: Query HWRM Interface version from FW

Shahar Klein (2):
net/mlx5: E-Switch, Introduce flow counter affinity
net/mlx5: Fold the modify lag code into function

Shamir Rabinovitch (2):
RDMA/restrack: Resource-tracker should not use uobject pointers
RDMA: Cleanup undesired pd->uobject usage

Steve Wise (2):
iw_cxgb4: only reconnect with MPAv1 if the peer aborts
RDMA/iwcm: Don't copy past the end of dev_name() string

Tariq Toukan (2):
net/mlx5: Use helper to get CQE opcode
IB/mlx5: Use helper to get CQE opcode

Ursula Braun (1):
mlx4: trigger IB events needed by SMC

Wei Yongjun (1):
RDMA/srpt: Use kmem_cache_free() instead of kfree()

Yishai Hadas (11):
net/mlx5: Update mlx5_ifc with DEVX UCTX capabilities bits
IB/core: Introduce UVERBS_IDR_ANY_OBJECT
IB/core: Enable getting an object type from a given uobject
IB/mlx5: Enable modify and query verbs objects via DEVX
IB/mlx5: Enforce DEVX privilege by firmware
IB/mlx5: Update the supported DEVX commands
IB/mlx5: Allow XRC usage via verbs in DEVX context
IB/mlx5: Introduce uid as part of alloc/dealloc transport domain
IB/mlx5: Use uid as part of alloc/dealloc transport domain
IB/mlx5: Use the correct commands for UMEM and UCTX allocation
IB/mlx5: Allocate the per-port Q counter shared when DEVX is supported

Yue Haibing (1):
IB/srpt: Drop pointless static qualifier in srpt_make_tpg()

YueHaibing (3):
IB/mlx5: Remove duplicated include from mlx5_ib.h
net/mlx5: Remove duplicated include from eswitch.c
IB/mlx4: Remove set but not used variable 'pd'

Yuval Shaia (9):
IB/core: Make function ib_fmr_pool_unmap return void
IB/rxe: Make function rxe_pool_cleanup return void
IB/rxe: Utilize generic function to validate port number
RDMA/core: Validate port number in query_pkey verb
IB/rxe: Fix incorrect cache cleanup in error flow
IB/{mlx5,ocrdma,qedr,rxe}: Omit port validation from IB verbs
IB/mlx4: Remove unneeded NULL check
IB/mlx4: Utilize macro to calculate SQ spare size
IB/rxe: Reuse code which sets port state

Zhu Yanjun (3):
IB/rxe: clean skb queue directly
IB/rxe: move the variable into the function that uses it
IB/rxe: make rxe_unregister_device void

kbuild test robot (1):
RDMA/uverbs: fix ptr_ret.cocci warnings

MAINTAINERS | 2 +
drivers/infiniband/core/Makefile | 2 +-
drivers/infiniband/core/agent.c | 4 +-
drivers/infiniband/core/cache.c | 17 +-
drivers/infiniband/core/cm.c | 6 +-
drivers/infiniband/core/cma.c | 2 +-
drivers/infiniband/core/cma_configfs.c | 3 +
drivers/infiniband/core/cma_priv.h | 28 +
drivers/infiniband/core/core_priv.h | 47 +-
drivers/infiniband/core/cq.c | 8 +-
drivers/infiniband/core/device.c | 166 +-
drivers/infiniband/core/fmr_pool.c | 8 +-
drivers/infiniband/core/iwcm.c | 12 +-
drivers/infiniband/core/mad.c | 22 +-
drivers/infiniband/core/mad_rmpp.c | 11 +-
drivers/infiniband/core/nldev.c | 34 +-
drivers/infiniband/core/opa_smi.h | 4 +-
drivers/infiniband/core/rdma_core.c | 54 +-
drivers/infiniband/core/rdma_core.h | 79 +-
drivers/infiniband/core/restrack.c | 51 +-
drivers/infiniband/core/sa_query.c | 5 +-
drivers/infiniband/core/security.c | 8 +-
drivers/infiniband/core/smi.h | 4 +-
drivers/infiniband/core/sysfs.c | 28 +-
drivers/infiniband/core/ucm.c | 2 +-
drivers/infiniband/core/umem_odp.c | 14 +-
drivers/infiniband/core/user_mad.c | 244 +--
drivers/infiniband/core/uverbs.h | 86 +-
drivers/infiniband/core/uverbs_cmd.c | 2074 ++++++++++----------
drivers/infiniband/core/uverbs_ioctl.c | 59 +-
drivers/infiniband/core/uverbs_main.c | 242 +--
drivers/infiniband/core/uverbs_std_types.c | 118 +-
.../infiniband/core/uverbs_std_types_counters.c | 20 +-
drivers/infiniband/core/uverbs_std_types_cq.c | 23 +-
drivers/infiniband/core/uverbs_std_types_device.c | 224 +++
drivers/infiniband/core/uverbs_std_types_dm.c | 17 +-
.../infiniband/core/uverbs_std_types_flow_action.c | 31 +-
drivers/infiniband/core/uverbs_std_types_mr.c | 76 +-
drivers/infiniband/core/uverbs_uapi.c | 514 ++++-
drivers/infiniband/core/verbs.c | 194 +-
drivers/infiniband/hw/bnxt_re/ib_verbs.c | 17 +-
drivers/infiniband/hw/bnxt_re/ib_verbs.h | 3 +-
drivers/infiniband/hw/bnxt_re/main.c | 128 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 34 +-
drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 59 +-
drivers/infiniband/hw/bnxt_re/qplib_res.h | 1 +
drivers/infiniband/hw/bnxt_re/qplib_sp.c | 10 +-
drivers/infiniband/hw/bnxt_re/qplib_sp.h | 6 +-
drivers/infiniband/hw/cxgb3/cxio_hal.c | 3 +-
drivers/infiniband/hw/cxgb3/iwch_provider.c | 66 +-
drivers/infiniband/hw/cxgb4/cm.c | 3 +-
drivers/infiniband/hw/cxgb4/provider.c | 74 +-
drivers/infiniband/hw/cxgb4/qp.c | 7 +-
drivers/infiniband/hw/hfi1/Makefile | 1 +
drivers/infiniband/hw/hfi1/chip.c | 47 +-
drivers/infiniband/hw/hfi1/chip_registers.h | 4 +
drivers/infiniband/hw/hfi1/common.h | 19 +-
drivers/infiniband/hw/hfi1/debugfs.c | 49 +
drivers/infiniband/hw/hfi1/driver.c | 72 +-
drivers/infiniband/hw/hfi1/hfi.h | 35 +-
drivers/infiniband/hw/hfi1/mad.c | 2 +-
drivers/infiniband/hw/hfi1/pio.c | 31 +-
drivers/infiniband/hw/hfi1/pio.h | 5 +
drivers/infiniband/hw/hfi1/qp.c | 20 +-
drivers/infiniband/hw/hfi1/rc.c | 32 +-
drivers/infiniband/hw/hfi1/sdma.c | 10 +-
drivers/infiniband/hw/hfi1/sdma.h | 1 +
drivers/infiniband/hw/hfi1/tid_rdma.c | 48 +
drivers/infiniband/hw/hfi1/tid_rdma.h | 13 +
drivers/infiniband/hw/hfi1/uc.c | 2 +-
drivers/infiniband/hw/hfi1/ud.c | 33 +-
drivers/infiniband/hw/hfi1/user_sdma.c | 5 +-
drivers/infiniband/hw/hfi1/verbs.c | 28 +-
drivers/infiniband/hw/hfi1/verbs.h | 2 +
drivers/infiniband/hw/hfi1/vnic_main.c | 4 +-
drivers/infiniband/hw/hfi1/vnic_sdma.c | 18 +-
drivers/infiniband/hw/hns/Makefile | 2 +-
drivers/infiniband/hw/hns/hns_roce_ah.c | 3 +-
drivers/infiniband/hw/hns/hns_roce_alloc.c | 2 +
drivers/infiniband/hw/hns/hns_roce_cmd.h | 4 +
drivers/infiniband/hw/hns/hns_roce_common.h | 3 -
drivers/infiniband/hw/hns/hns_roce_device.h | 97 +-
drivers/infiniband/hw/hns/hns_roce_hem.c | 41 +-
drivers/infiniband/hw/hns/hns_roce_hem.h | 2 +
drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 13 +-
drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 574 +++++-
drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 142 +-
drivers/infiniband/hw/hns/hns_roce_main.c | 185 +-
drivers/infiniband/hw/hns/hns_roce_mr.c | 141 +-
drivers/infiniband/hw/hns/hns_roce_qp.c | 37 +-
drivers/infiniband/hw/hns/hns_roce_srq.c | 457 +++++
drivers/infiniband/hw/i40iw/i40iw_cm.c | 2 +-
drivers/infiniband/hw/i40iw/i40iw_verbs.c | 127 +-
drivers/infiniband/hw/mlx4/ah.c | 6 +-
drivers/infiniband/hw/mlx4/alias_GUID.c | 2 +-
drivers/infiniband/hw/mlx4/mad.c | 28 +-
drivers/infiniband/hw/mlx4/main.c | 205 +-
drivers/infiniband/hw/mlx4/mlx4_ib.h | 5 +-
drivers/infiniband/hw/mlx4/qp.c | 31 +-
drivers/infiniband/hw/mlx4/srq.c | 10 +-
drivers/infiniband/hw/mlx4/sysfs.c | 12 +-
drivers/infiniband/hw/mlx5/Makefile | 4 +-
drivers/infiniband/hw/mlx5/ah.c | 4 +-
drivers/infiniband/hw/mlx5/cmd.c | 19 +
drivers/infiniband/hw/mlx5/cmd.h | 2 +
drivers/infiniband/hw/mlx5/cq.c | 114 +-
drivers/infiniband/hw/mlx5/devx.c | 233 ++-
drivers/infiniband/hw/mlx5/flow.c | 73 +-
drivers/infiniband/hw/mlx5/ib_rep.c | 15 +-
drivers/infiniband/hw/mlx5/mad.c | 18 +-
drivers/infiniband/hw/mlx5/main.c | 602 +++---
drivers/infiniband/hw/mlx5/mlx5_ib.h | 77 +-
drivers/infiniband/hw/mlx5/mr.c | 42 +-
drivers/infiniband/hw/mlx5/odp.c | 454 ++++-
drivers/infiniband/hw/mlx5/qp.c | 447 +++--
drivers/infiniband/hw/mlx5/srq.c | 73 +-
drivers/infiniband/hw/mlx5/srq.h | 73 +
.../core/srq.c => infiniband/hw/mlx5/srq_cmd.c} | 302 +--
drivers/infiniband/hw/mthca/mthca_dev.h | 9 +-
drivers/infiniband/hw/mthca/mthca_mad.c | 7 +-
drivers/infiniband/hw/mthca/mthca_provider.c | 158 +-
drivers/infiniband/hw/mthca/mthca_qp.c | 22 +-
drivers/infiniband/hw/mthca/mthca_srq.c | 29 +-
drivers/infiniband/hw/nes/nes_cm.c | 2 +-
drivers/infiniband/hw/nes/nes_verbs.c | 71 +-
drivers/infiniband/hw/ocrdma/ocrdma_ah.c | 4 +-
drivers/infiniband/hw/ocrdma/ocrdma_ah.h | 4 +-
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 92 +-
drivers/infiniband/hw/ocrdma/ocrdma_stats.c | 5 +-
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 19 +-
drivers/infiniband/hw/qedr/main.c | 103 +-
drivers/infiniband/hw/qedr/verbs.c | 25 +-
drivers/infiniband/hw/qedr/verbs.h | 4 +-
drivers/infiniband/hw/qib/qib_iba6120.c | 1 -
drivers/infiniband/hw/qib/qib_iba7220.c | 2 -
drivers/infiniband/hw/qib/qib_iba7322.c | 3 -
drivers/infiniband/hw/qib/qib_init.c | 1 -
drivers/infiniband/hw/qib/qib_mad.c | 3 +-
drivers/infiniband/hw/qib/qib_pcie.c | 2 +-
drivers/infiniband/hw/qib/qib_sdma.c | 5 +-
drivers/infiniband/hw/qib/qib_ud.c | 1 -
drivers/infiniband/hw/qib/qib_user_sdma.c | 1 -
drivers/infiniband/hw/qib/qib_verbs.c | 13 +-
drivers/infiniband/hw/usnic/usnic_ib_main.c | 63 +-
drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c | 2 +-
drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 14 +-
drivers/infiniband/hw/usnic/usnic_ib_verbs.h | 3 +-
drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c | 82 +-
drivers/infiniband/hw/vmw_pvrdma/pvrdma_qp.c | 2 +-
drivers/infiniband/hw/vmw_pvrdma/pvrdma_srq.c | 2 +-
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c | 8 +-
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h | 4 +-
drivers/infiniband/sw/rdmavt/ah.c | 5 +-
drivers/infiniband/sw/rdmavt/ah.h | 3 +-
drivers/infiniband/sw/rdmavt/mad.c | 3 +-
drivers/infiniband/sw/rdmavt/qp.c | 9 +-
drivers/infiniband/sw/rdmavt/vt.c | 299 +--
drivers/infiniband/sw/rxe/rxe.h | 6 +-
drivers/infiniband/sw/rxe/rxe_comp.c | 6 +
drivers/infiniband/sw/rxe/rxe_hw_counters.c | 9 +-
drivers/infiniband/sw/rxe/rxe_hw_counters.h | 3 +
drivers/infiniband/sw/rxe/rxe_loc.h | 7 +-
drivers/infiniband/sw/rxe/rxe_net.c | 16 +-
drivers/infiniband/sw/rxe/rxe_pool.c | 30 +-
drivers/infiniband/sw/rxe/rxe_pool.h | 2 +-
drivers/infiniband/sw/rxe/rxe_qp.c | 11 +-
drivers/infiniband/sw/rxe/rxe_req.c | 3 +-
drivers/infiniband/sw/rxe/rxe_resp.c | 33 +-
drivers/infiniband/sw/rxe/rxe_sysfs.c | 18 +-
drivers/infiniband/sw/rxe/rxe_verbs.c | 129 +-
drivers/infiniband/sw/rxe/rxe_verbs.h | 8 +-
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 4 +-
drivers/infiniband/ulp/ipoib/ipoib_main.c | 4 +-
drivers/infiniband/ulp/iser/iser_memory.c | 9 +-
drivers/infiniband/ulp/opa_vnic/opa_vnic_netdev.c | 8 +-
drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c | 8 +-
drivers/infiniband/ulp/srp/ib_srp.c | 159 +-
drivers/infiniband/ulp/srp/ib_srp.h | 20 +-
drivers/infiniband/ulp/srpt/ib_srpt.c | 283 ++-
drivers/infiniband/ulp/srpt/ib_srpt.h | 44 +-
drivers/net/ethernet/mellanox/mlx5/core/Makefile | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 54 +-
drivers/net/ethernet/mellanox/mlx5/core/cq.c | 15 +-
drivers/net/ethernet/mellanox/mlx5/core/debugfs.c | 11 +
drivers/net/ethernet/mellanox/mlx5/core/dev.c | 162 +-
.../mellanox/mlx5/core/diag/fs_tracepoint.c | 8 +-
.../ethernet/mellanox/mlx5/core/diag/fw_tracer.c | 27 +-
.../ethernet/mellanox/mlx5/core/diag/fw_tracer.h | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/en.h | 6 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 51 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 10 +-
drivers/net/ethernet/mellanox/mlx5/core/en_stats.c | 17 +-
drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/eq.c | 1260 ++++++------
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 44 +-
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 3 +-
.../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 8 +-
drivers/net/ethernet/mellanox/mlx5/core/events.c | 325 +++
.../net/ethernet/mellanox/mlx5/core/fpga/conn.c | 2 +-
.../net/ethernet/mellanox/mlx5/core/fpga/core.c | 38 +-
.../net/ethernet/mellanox/mlx5/core/fpga/core.h | 11 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c | 83 +-
drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 23 -
.../net/ethernet/mellanox/mlx5/core/fs_counters.c | 23 +
drivers/net/ethernet/mellanox/mlx5/core/health.c | 29 +-
drivers/net/ethernet/mellanox/mlx5/core/lag.c | 59 +-
.../net/ethernet/mellanox/mlx5/core/lib/clock.c | 24 +-
.../net/ethernet/mellanox/mlx5/core/lib/clock.h | 3 -
drivers/net/ethernet/mellanox/mlx5/core/lib/eq.h | 98 +
drivers/net/ethernet/mellanox/mlx5/core/lib/mlx5.h | 36 +
drivers/net/ethernet/mellanox/mlx5/core/main.c | 351 +---
.../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 39 +-
.../net/ethernet/mellanox/mlx5/core/pagealloc.c | 44 +-
drivers/net/ethernet/mellanox/mlx5/core/port.c | 57 -
drivers/net/ethernet/mellanox/mlx5/core/qp.c | 86 +-
drivers/net/ethernet/mellanox/mlx5/core/transobj.c | 109 -
drivers/net/ethernet/mellanox/mlx5/core/wq.h | 2 +-
fs/cifs/smbdirect.c | 2 +-
include/linux/mlx5/cq.h | 2 +-
include/linux/mlx5/device.h | 23 +-
include/linux/mlx5/driver.h | 254 +--
include/linux/mlx5/eq.h | 72 +
include/linux/mlx5/fs.h | 8 +-
include/linux/mlx5/mlx5_ifc.h | 229 ++-
include/linux/mlx5/port.h | 3 -
include/linux/mlx5/qp.h | 5 +
include/linux/mlx5/srq.h | 72 -
include/linux/mlx5/transobj.h | 11 -
include/rdma/ib_fmr_pool.h | 2 +-
include/rdma/ib_mad.h | 10 +
include/rdma/ib_verbs.h | 584 +++---
include/rdma/rdma_vt.h | 7 +
include/rdma/restrack.h | 17 +-
include/rdma/uverbs_ioctl.h | 251 ++-
include/rdma/uverbs_named_ioctl.h | 13 +-
include/rdma/uverbs_std_types.h | 73 +-
include/scsi/srp.h | 26 +-
include/uapi/rdma/hfi/hfi1_user.h | 6 +-
include/uapi/rdma/hns-abi.h | 6 +
include/uapi/rdma/ib_user_ioctl_cmds.h | 84 +
include/uapi/rdma/ib_user_ioctl_verbs.h | 16 +
include/uapi/rdma/ib_user_verbs.h | 18 +-
include/uapi/rdma/mlx5-abi.h | 2 +
include/uapi/rdma/mlx5_user_ioctl_cmds.h | 1 +
include/uapi/rdma/rdma_netlink.h | 3 +
net/rds/ib.c | 4 +-
net/sunrpc/xprtrdma/fmr_ops.c | 2 +-
247 files changed, 10427 insertions(+), 6528 deletions(-)
(diffstat from tag for-linus-merged)

Attachment: signature.asc
Description: PGP signature