Hi Linus, Here are the RDMA patches for 4.18. No merge conflicts this time, and as of this writing netdev's pull request has not been merged so the merge diffstat shows a number of ethernet related files from the various shared pull requests in the two trees. There are a few more merge commits in this history than has been typical in the past. Instead of choosing the net or RDMA tree to get certain patches, Mellanox is now providing a 'shared branch' which is intended to carry all commits to drivers/net/ethernet/mellanox/mlx5/core and is used to merge those patches into both the net and rdma trees. This is expected to reduce the merge conflicts by ensuring both trees have all commits related to mlx5/core and related, and no rdma or netdev commit is left only in the others tree. The following changes since commit 55ba49cbcef37053d973f9a45bc58818c333fe13: RDMA/hns: Move the location for initializing tmp_len (2018-05-23 15:45:44 -0600) 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 c1191a19fecad92b73c25770a7f47174280ca564: RDMA/mlx5: Update SPDX tags to show proper license (2018-06-05 14:04:20 -0600) ---------------------------------------------------------------- 4.18 Merge window pull request This has been a quiet cycle for RDMA, the big bulk is the usual smallish driver updates and bug fixes. About four new uAPI related things. Not as much Szykaller patches this time, the bugs it finds are getting harder to fix. - More work cleaning up the RDMA CM code - Usual driver bug fixes and cleanups for qedr, qib, hfi1, hns, i40iw, iw_cxgb4, mlx5, rxe - Driver specific resource tracking and reporting via netlink - Continued work for name space support from Parav - MPLS support for the verbs flow steering uAPI - A few tricky IPoIB fixes improving robustness - HFI1 driver support for the '16B' management packet format - Some auditing to not print kernel pointers via %llx or similar - Mark the entire 'UCM' user-space interface as BROKEN with the intent to remove it entirely. The user space side of this was long ago replaced with RDMA-CM and syzkaller is finding bugs in the residual UCM interface nobody wishes to fix because nobody uses it. - Purge more bogus BUG_ON's from Leon - 'flow counters' verbs uAPI - T10 fixups for iser/isert, these are Acked by Martin but going through the RDMA tree due to dependencies ---------------------------------------------------------------- Alex Estrin (3): IB/hfi1: Complete check for locally terminated smp IB/{hfi1, qib}: Add handling of kernel restart IB/isert: Fix for lib/dma_debug check_sync warning Ariel Levkovich (7): IB/uverbs: Expose GRE flow spec to the user-kernel ABI header IB/uverbs: Introduce a GRE steering match filter IB/uverbs: Expose MPLS flow spec to the user-kernel ABI header IB/uverbs: Introduce a MPLS steering match filter IB/mlx5: Add support for GRE flow specification IB/mlx5: Add support for MPLS flow specification IB/mlx5: Expose MPLS related tunneling offloads Arnd Bergmann (1): iw_cxgb4: add INFINIBAND_ADDR_TRANS dependency Ben Hutchings (1): IB: Fix RDMA_RXE and INFINIBAND_RDMAVT dependencies for DMA_VIRT_OPS Brian Welty (1): IB/{hfi1, qib, rdmavt}: Move logic to allocate receive WQE into rdmavt Christophe JAILLET (3): net/mlx5: Vport, Use 'kvfree()' for memory allocated by 'kvzalloc()' net/mlx5: Eswitch, Use 'kvfree()' for memory allocated by 'kvzalloc()' IB/mlx5: Use 'kvfree()' for memory allocated by 'kvzalloc()' Colin Ian King (4): net/mlx5: remove some extraneous spaces in indentations RDMA/qedr: fix spelling mistake: "failes" -> "fails" net/mlx5: fix spelling mistake: "modfiy" -> "modify" RDMA/qedr: fix spelling mistake: "adrresses" -> "addresses" Cong Wang (1): infiniband: fix a possible use-after-free bug Don Hiatt (3): IB/hfi1: Define 16B Management Packets IB/hfi1: Add support for 16B Management Packets IB/hfi1: Add 16B Management Packet trace support Doug Ledford (7): Merge branch 'k.o/for-rc' into k.o/wip/dl-for-next Merge tag 'mlx5-updates-2018-05-07' of git://git.kernel.org/.../mellanox/linux into k.o/wip/dl-for-next RDMA/hfi1: Fix build error with debugfs disabled RDMA/uapi: Fix uapi breakage RDMA/ipoib: Update paths on CLIENT_REREG/SM_CHANGE events Merge branch 'wip/dl-ipoib' into wip/dl-for-next RDMA/hns_roce: Don't check return value of zap_vma_ptes() Erez Shitrit (1): IB/mlx5: Fetch soft WQE's on fatal error state Evgenii Smirnov (1): RDMA/ipoib: drop skb on path record lookup failure Idan Burstein (1): IB/mlx5: posting klm/mtt list inline in the send queue for reg_wr Jack Morgenstein (2): IB/core: Make testing MR flags for writability a static inline function IB/mlx4: Mark user MR as writable if actual virtual memory is writable Jason Gunthorpe (8): RDMA/rdma_cm: Remove process_req and timer sorting RDMA/rdma_cm: Make rdma_addr_cancel into a fence RDMA/rdma_cm: Delete rdma_addr_client Merge tag 'mlx5-updates-2018-05-17' of git://git.kernel.org/.../mellanox/linux into for-next Merge branch 'mr_fix' into git://git.kernel.org/.../rdma/rdma for-next RDMA/core: Remove indirection through ib_cache_setup() Merge branch 'mini_cqe' into git://git.kernel.org/.../rdma/rdma for-next Merge tag 'verbs_flow_counters' of git://git.kernel.org/.../leon/linux-rdma.git into for-next Jia-Ju Bai (3): infiniband: i40iw: Replace GFP_ATOMIC with GFP_KERNEL in i40iw_add_mqh_4 infiniband: i40iw: Replace GFP_ATOMIC with GFP_KERNEL in i40iw_make_listen_node infiniband: i40iw: Replace GFP_ATOMIC with GFP_KERNEL in i40iw_l2param_change Kaike Wan (3): IB/hfi1: Ensure VL index is within bounds IB/hfi1: Remove unused variable IB/hfi1: Rename exp_lock to exp_mutex Kamenee Arumugam (1): IB/Hfi1: Read CCE Revision register to verify the device is responsive Leon Romanovsky (16): net/mlx5: Decrease level of prints about non-existent MKEY RDMA/hns: Drop local zgid in favor of core defined variable RDMA/mlx5: Remove debug prints of VMA pointers RDMA/ucm: Mark UCM interface as BROKEN RDMA/mlx4: Catch FW<->SW misalignment without machine crash RDMA/mlx4: Discard unknown SQP work requests RDMA/cxgb3: Don't crash kernel just because IDR is full RDMA/cm: Abort loop in case of CM dequeue RDMA/cma: Ignore unknown event RDMA/mad: Delete inaccessible BUG_ON RDMA/mad: Convert BUG_ONs to error flows RDMA/mlx5: Don't check return value of zap_vma_ptes() RDMA/mlx4: Don't crash machine if zap_vma_ptes() fails mm: Remove return value of zap_vma_ptes() RDMA/restrack: Change SPDX tag to properly reflect license RDMA/mlx5: Update SPDX tags to show proper license Matan Barak (2): IB/uverbs: Add an ib_uobject getter to ioctl() infrastructure IB/core: Support passing uhw for create_flow Max Gurtovoy (4): IB/isert: fix T10-pi check mask setting RDMA/core: introduce check masks for T10-PI offload IB/iser: use T10-PI check mask definitions from core layer IB/isert: use T10-PI check mask definitions from core layer Michael J. Ruhl (4): IB/hfi1: Return actual error value from program_rcvarray() IB/hfi1: Return correct value for device state IB/hfi1: Reorder incorrect send context disable IB/hfi1: Set port number for errorinfo MAD response Mike Marciniszyn (7): IB/hfi1: Fix fault injection init/exit issues IB/hfi1: Cleanup of exp_rcv IB/{rdmavt,hfi1}: Change hrtimer add to use pinned version IB/qib: Fix DMA api warning with debug kernel IB/hfi1: Fix user context tail allocation for DMA_RTAIL IB/hfi1: Add bypass register defines and replace blind constants IB/hfi1: Fix comment on default hdr entry size Mitko Haralanov (1): IB/hfi1: Rework fault injection machinery Moshe Shemesh (2): net/mlx5: Refactor num of blocks in mailbox calculation net/mlx5: Fix dump_command mailbox length printed Or Gerlitz (1): net/mlx5: Use flow counter pointer as input to the query function Parav Pandit (9): IB/core: Use CONFIG_SECURITY_INFINIBAND to compile out security code IB/core: Make gid_table_reserve_default() return void IB/core: Reuse gid_table_release_one() in table allocation failure IB/cm: Avoid AV ah_attr overwriting during LAP message handling IB/cm: Store and restore ah_attr during LAP msg processing IB/cm: Store and restore ah_attr during CM message processing IB/core: Remove duplicate declaration of gid_cache_wq IB/core: Reduce the places that use zgid IB/core: Introduce and use rdma_gid_table() Rabie Loulou (1): net/mlx5e: Explicitly set destination e-switch in FDB rules Raed Salem (11): net/mlx5: Export flow counter related API IB/core: Introduce counters object and its create/destroy IB/uverbs: Add create/destroy counters support IB/core: Introduce counters read verb IB/uverbs: Add read counters support IB/core: Add support for flow counters IB/uverbs: Add support for flow counters IB/mlx5: Add counters create and destroy support IB/mlx5: Add flow counters binding support IB/mlx5: Add flow counters read support IB/mlx5: Add counters read support Roi Dayan (1): net/mlx5: Add merged e-switch cap Sebastian Andrzej Siewior (1): IB/ipoib: replace local_irq_disable() with proper locking Sebastian Sanchez (4): IB/hfi1: Prevent LNI hang when LCB can't obtain lanes IB/hfi1: Optimize kthread pointer locking when queuing CQ entries IB/hfi1: Create common functions for affinity CPU mask operations IB/{hfi1, rdmavt, qib}: Implement CQ completion vector support Sergey Gorenko (1): IB/iser: Do not reduce max_sectors Shahar Klein (4): net/mlx5: Properly handle a vport destination when setting FTE net/mlx5: Add destination e-switch owner net/mlx5: Add source e-switch owner net/mlx5e: Explicitly set source e-switch in offloaded TC rules Shiraz Saleem (1): i40iw: Extend port reuse support for listeners Souptick Joarder (2): infiniband: hw: hfi1: Change return type to vm_fault_t infiniband: hw: qib: Change return type to vm_fault_t Steve Wise (12): RDMA/nldev: Add explicit pad attribute RDMA/nldev: add driver-specific resource tracking RDMA/nldev: helper functions to add driver attributes iw_cxgb4: dump detailed driver-specific QP information iw_cxgb4: fix uninitialized variable warnings RDMA/NLDEV: remove mr iova attribute iw_cxgb4: remove wr_id attributes iw_cxgb4: always set iw_cm_id.provider_data RDMA/CMA: add rdma_iw_cm_id() and rdma_res_to_id() helpers iw_cxgb4: provide detailed provider-specific CM_ID information iw_cxgb4: provide detailed driver-specific CQ information iw_cxgb4: provide detailed driver-specific MR information Tariq Toukan (1): net/mlx5: Cleanup unused field in Work Queue parameters Wei Hu(Xavier) (6): RDMA/hns: Modify uar allocation algorithm to avoid bitmap exhaust RDMA/hns: Increase checking CMQ status timeout value RDMA/hns: Add reset process for RoCE in hip08 RDMA/hns: Fix the illegal memory operation when cross page RDMA/uverbs: Hoist the common process of disassociate_ucontext into ib core RDMA/hns: Implement the disassociate_ucontext API Yixian Liu (1): RDMA/hns: Add 64KB page size support for hip08 Yonatan Cohen (3): net/mlx5: Exposing a new mini-CQE format IB/mlx5: Refactor CQE compression response IB/mlx5: Introduce a new mini-CQE format YueHaibing (2): IB/cxgb4: use skb_put_zero()/__skb_put_zero IB/hns: Use zeroing memory allocator instead of allocator/memset Yuval Shaia (2): IB/rxe: Change rxe_rcv to return void IB/core: Remove redundant return Zhu Yanjun (9): IB/rxe: make the variable static IB/rxe: avoid export symbols IB/rxe: make rxe_release_udp_tunnel static IB/rxe: optimize the function duplicate_request IB/rxe: replace refcount_inc with skb_get IB/rxe: change rxe_set_mtu function type to void IB/rxe: remove unused function variable IB/rxe: avoid calling WARN_ON_ONCE twice IB/rxe: avoid unnecessary export oulijun (1): RDMA/hns: Rename the idx field of db drivers/infiniband/Kconfig | 11 + drivers/infiniband/core/Makefile | 9 +- drivers/infiniband/core/addr.c | 172 +++---- drivers/infiniband/core/cache.c | 112 ++--- drivers/infiniband/core/cm.c | 62 ++- drivers/infiniband/core/cma.c | 36 +- drivers/infiniband/core/core_priv.h | 3 - drivers/infiniband/core/device.c | 4 +- drivers/infiniband/core/mad.c | 12 +- drivers/infiniband/core/nldev.c | 122 ++++- drivers/infiniband/core/restrack.c | 9 +- drivers/infiniband/core/roce_gid_mgmt.c | 2 - drivers/infiniband/core/security.c | 4 - drivers/infiniband/core/ucma.c | 6 +- drivers/infiniband/core/umem.c | 13 +- drivers/infiniband/core/uverbs.h | 2 + drivers/infiniband/core/uverbs_cmd.c | 111 ++++- drivers/infiniband/core/uverbs_main.c | 42 +- drivers/infiniband/core/uverbs_std_types.c | 3 +- .../infiniband/core/uverbs_std_types_counters.c | 157 +++++++ drivers/infiniband/core/uverbs_std_types_cq.c | 23 +- .../infiniband/core/uverbs_std_types_flow_action.c | 4 +- drivers/infiniband/core/verbs.c | 2 +- drivers/infiniband/hw/cxgb3/iwch.h | 1 - drivers/infiniband/hw/cxgb4/Kconfig | 1 + drivers/infiniband/hw/cxgb4/Makefile | 3 +- drivers/infiniband/hw/cxgb4/cm.c | 1 + drivers/infiniband/hw/cxgb4/iw_cxgb4.h | 5 + drivers/infiniband/hw/cxgb4/provider.c | 8 + drivers/infiniband/hw/cxgb4/qp.c | 9 +- drivers/infiniband/hw/cxgb4/restrack.c | 501 ++++++++++++++++++++ drivers/infiniband/hw/hfi1/Makefile | 10 +- drivers/infiniband/hw/hfi1/affinity.c | 497 ++++++++++++++++++-- drivers/infiniband/hw/hfi1/affinity.h | 10 +- drivers/infiniband/hw/hfi1/chip.c | 82 ++-- drivers/infiniband/hw/hfi1/chip.h | 15 +- drivers/infiniband/hw/hfi1/chip_registers.h | 13 +- drivers/infiniband/hw/hfi1/debugfs.c | 292 +----------- drivers/infiniband/hw/hfi1/debugfs.h | 102 ++-- drivers/infiniband/hw/hfi1/driver.c | 53 ++- drivers/infiniband/hw/hfi1/exp_rcv.c | 39 +- drivers/infiniband/hw/hfi1/exp_rcv.h | 24 +- drivers/infiniband/hw/hfi1/fault.c | 375 +++++++++++++++ drivers/infiniband/hw/hfi1/fault.h | 109 +++++ drivers/infiniband/hw/hfi1/file_ops.c | 8 +- drivers/infiniband/hw/hfi1/hfi.h | 61 ++- drivers/infiniband/hw/hfi1/init.c | 47 +- drivers/infiniband/hw/hfi1/mad.c | 37 +- drivers/infiniband/hw/hfi1/pcie.c | 8 + drivers/infiniband/hw/hfi1/pio.c | 44 +- drivers/infiniband/hw/hfi1/rc.c | 10 +- drivers/infiniband/hw/hfi1/ruc.c | 154 +------ drivers/infiniband/hw/hfi1/sdma.c | 12 +- drivers/infiniband/hw/hfi1/trace.c | 43 +- drivers/infiniband/hw/hfi1/trace_dbg.h | 3 +- drivers/infiniband/hw/hfi1/trace_ibhdrs.h | 160 ++++--- drivers/infiniband/hw/hfi1/uc.c | 4 +- drivers/infiniband/hw/hfi1/ud.c | 61 ++- drivers/infiniband/hw/hfi1/user_exp_rcv.c | 11 +- drivers/infiniband/hw/hfi1/user_sdma.h | 4 +- drivers/infiniband/hw/hfi1/verbs.c | 45 +- drivers/infiniband/hw/hfi1/verbs.h | 15 +- drivers/infiniband/hw/hns/hns_roce_alloc.c | 8 +- drivers/infiniband/hw/hns/hns_roce_cmd.c | 3 + drivers/infiniband/hw/hns/hns_roce_device.h | 14 + drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 188 ++++++-- drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 7 +- drivers/infiniband/hw/hns/hns_roce_main.c | 76 ++- drivers/infiniband/hw/hns/hns_roce_mr.c | 6 - drivers/infiniband/hw/hns/hns_roce_pd.c | 10 +- drivers/infiniband/hw/i40iw/i40iw_cm.c | 67 ++- drivers/infiniband/hw/i40iw/i40iw_cm.h | 4 +- drivers/infiniband/hw/i40iw/i40iw_hw.c | 34 +- drivers/infiniband/hw/i40iw/i40iw_main.c | 2 +- drivers/infiniband/hw/mlx4/mad.c | 1 - drivers/infiniband/hw/mlx4/main.c | 60 +-- drivers/infiniband/hw/mlx4/mr.c | 50 +- drivers/infiniband/hw/mlx4/qp.c | 2 +- drivers/infiniband/hw/mlx5/cq.c | 59 ++- drivers/infiniband/hw/mlx5/ib_rep.c | 2 +- drivers/infiniband/hw/mlx5/ib_rep.h | 2 +- drivers/infiniband/hw/mlx5/main.c | 511 ++++++++++++++++++--- drivers/infiniband/hw/mlx5/mlx5_ib.h | 36 ++ drivers/infiniband/hw/mlx5/qp.c | 43 +- drivers/infiniband/hw/qedr/verbs.c | 4 +- drivers/infiniband/hw/qib/qib.h | 4 +- drivers/infiniband/hw/qib/qib_file_ops.c | 12 +- drivers/infiniband/hw/qib/qib_init.c | 13 + drivers/infiniband/hw/qib/qib_rc.c | 8 +- drivers/infiniband/hw/qib/qib_ruc.c | 154 +------ drivers/infiniband/hw/qib/qib_uc.c | 4 +- drivers/infiniband/hw/qib/qib_ud.c | 4 +- drivers/infiniband/hw/qib/qib_user_pages.c | 20 +- drivers/infiniband/hw/qib/qib_verbs.c | 6 +- drivers/infiniband/hw/qib/qib_verbs.h | 2 - drivers/infiniband/sw/rdmavt/Kconfig | 2 +- drivers/infiniband/sw/rdmavt/cq.c | 74 ++- drivers/infiniband/sw/rdmavt/cq.h | 6 +- drivers/infiniband/sw/rdmavt/qp.c | 151 +++++- drivers/infiniband/sw/rdmavt/trace_cq.h | 35 +- drivers/infiniband/sw/rdmavt/vt.c | 35 +- drivers/infiniband/sw/rxe/Kconfig | 1 + drivers/infiniband/sw/rxe/rxe.c | 11 +- drivers/infiniband/sw/rxe/rxe.h | 4 +- drivers/infiniband/sw/rxe/rxe_comp.c | 10 +- drivers/infiniband/sw/rxe/rxe_loc.h | 13 +- drivers/infiniband/sw/rxe/rxe_mr.c | 13 +- drivers/infiniband/sw/rxe/rxe_net.c | 18 +- drivers/infiniband/sw/rxe/rxe_net.h | 3 - drivers/infiniband/sw/rxe/rxe_recv.c | 7 +- drivers/infiniband/sw/rxe/rxe_req.c | 2 +- drivers/infiniband/sw/rxe/rxe_resp.c | 20 +- drivers/infiniband/sw/rxe/rxe_verbs.c | 6 +- drivers/infiniband/ulp/ipoib/ipoib.h | 2 +- drivers/infiniband/ulp/ipoib/ipoib_main.c | 93 ++-- drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 15 +- drivers/infiniband/ulp/iser/iscsi_iser.c | 12 +- drivers/infiniband/ulp/iser/iscsi_iser.h | 6 +- drivers/infiniband/ulp/iser/iser_initiator.c | 2 +- drivers/infiniband/ulp/iser/iser_memory.c | 4 +- drivers/infiniband/ulp/iser/iser_verbs.c | 21 +- drivers/infiniband/ulp/isert/ib_isert.c | 37 +- drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 28 +- .../mellanox/mlx5/core/diag/fs_tracepoint.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 1 - drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 3 + drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 17 +- drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 2 + .../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 21 +- drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c | 9 + drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 26 +- drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 4 +- .../net/ethernet/mellanox/mlx5/core/fs_counters.c | 7 +- drivers/net/ethernet/mellanox/mlx5/core/mr.c | 4 +- drivers/net/ethernet/mellanox/mlx5/core/qp.c | 18 +- drivers/net/ethernet/mellanox/mlx5/core/vport.c | 6 +- drivers/net/ethernet/mellanox/mlx5/core/wq.h | 1 - include/linux/mlx5/device.h | 12 + include/linux/mlx5/fs.h | 10 +- include/linux/mlx5/mlx5_ifc.h | 66 ++- include/linux/mm.h | 8 +- include/rdma/ib_addr.h | 20 +- include/rdma/ib_cache.h | 1 + include/rdma/ib_verbs.h | 102 +++- include/rdma/rdma_cm.h | 3 + include/rdma/rdma_vt.h | 7 +- include/rdma/rdmavt_cq.h | 5 +- include/rdma/rdmavt_qp.h | 1 + include/rdma/restrack.h | 22 +- include/rdma/uverbs_ioctl.h | 11 + include/uapi/rdma/ib_user_ioctl_cmds.h | 21 + include/uapi/rdma/ib_user_verbs.h | 63 +++ include/uapi/rdma/mlx5-abi.h | 30 +- include/uapi/rdma/rdma_netlink.h | 30 +- mm/memory.c | 7 +- 156 files changed, 4560 insertions(+), 1827 deletions(-) create mode 100644 drivers/infiniband/core/uverbs_std_types_counters.c create mode 100644 drivers/infiniband/hw/cxgb4/restrack.c create mode 100644 drivers/infiniband/hw/hfi1/fault.c create mode 100644 drivers/infiniband/hw/hfi1/fault.h