Hi Linus, These are the proposed RDMA patches for 5.4 This cycle has proved to be quiet with a focus on bug fix and cleanup style patches, and less on major new functionality. I am aware of no conflicts. The following changes since commit f74c2bb98776e2de508f4d607cd519873065118e: Linux 5.3-rc8 (2019-09-08 13:33:15 -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 3eca7fc2d8d1275d9cf0c709f0937becbfcf6d96: RDMA: Fix double-free in srq creation error flow (2019-09-16 14:37:38 -0300) ---------------------------------------------------------------- RDMA subsystem updates for 5.4 This cycle mainly saw lots of bug fixes and clean up code across the core code and several drivers, few new functional changes were made. - Many cleanup and bug fixes for hns - Various small bug fixes and cleanups in hfi1, mlx5, usnic, qed, bnxt_re, efa - Share the query_port code between all the iWarp drivers - General rework and cleanup of the ODP MR umem code to fit better with the mmu notifier get/put scheme - Support rdma netlink in non init_net name spaces - mlx5 support for XRC devx and DC ODP ---------------------------------------------------------------- Andrey Konovalov (1): RDMA/mlx4: Untag user pointers in mlx4_get_umem_mr Arnd Bergmann (1): RDMA/usnic: Avoid overly large buffers on stack Bernard Metzler (2): RDMA/siw: Fix page address mapping in TX path RDMA/siw: Relax from kmap_atomic() use in TX path Chuck Lever (1): rdma: Enable ib_alloc_cq to spread work over a device's comp_vectors Chuhong Yuan (1): IB/usnic: Use dev_get_drvdata Colin Ian King (3): RDMA/hns: Fix comparison of unsigned long variable 'end' with less than zero RDMA/core: fix spelling mistake "Nelink" -> "Netlink" RDMA/bnxt_re: Fix spelling mistake "missin_resp" -> "missing_resp" Dan Carpenter (1): RDMA/hns: Fix some white space check_mtu_validate() Danit Goldberg (2): IB/mlx5: Use the original address for the page during free_pages IB/mlx5: Free mpi in mp_slave mode Doug Ledford (3): Merge branch 'wip/dl-for-rc' into wip/dl-for-next Merge remote-tracking branch 'mlx5-next/mlx5-next' into wip/dl-for-next Merge remote-tracking branch 'mlx5-next/mlx5-next' into for-next Gal Pressman (6): RDMA/efa: Expose device statistics RDMA/core: Introduce ratelimited ibdev printk functions RDMA/efa: Rate limit admin queue error prints RDMA/efa: Remove umem check on dereg MR flow RDMA/efa: Use existing FIELD_SIZEOF macro RDMA/efa: Fix incorrect error print Guoqing Jiang (1): Documentation/infiniband: update name of some functions Hariprasad Kelam (2): RDMA/qib: Unneeded variable ret RDMA/qedr: Remove Unneeded variable rc HÃ¥kon Bugge (1): RDMA/cma: Fix false error message Ira Weiny (1): IB/hfi1: Define variables as unsigned long to fix KASAN warning Jack Morgenstein (1): RDMA: Fix double-free in srq creation error flow Jason Gunthorpe (16): RDMA: Make most headers compile stand alone RDMA/odp: Use the common interval tree library instead of generic RDMA/odp: Iterate over the whole rbtree directly RDMA/odp: Make it clearer when a umem is an implicit ODP umem RMDA/odp: Consolidate umem_odp initialization RDMA/odp: Make the three ways to create a umem_odp clear RDMA/odp: Split creating a umem_odp from ib_umem_get RDMA/odp: Provide ib_umem_odp_release() to undo the allocs RDMA/odp: Check for overflow when computing the umem_odp end RDMA/odp: Use kvcalloc for the dma_list and page_list RDMA/mlx5: Use ib_umem_start instead of umem.address RDMA/mlx5: Use odp instead of mr->umem in pagefault_mr Merge branch 'odp_fixes' into rdma.git for-next Merge branch 'mlx5-odp-dc' into rdma.git for-next RDMA/odp: Add missing cast for 32 bit Merge tag 'v5.3-rc8' into rdma.git for-next Joe Perches (1): mlx5: Fix formats with line continuation whitespace Kaike Wan (3): IB/hfi1: Do not update hcrc for a KDETH packet during fault injection IB/hfi1: Add traces for TID RDMA READ IB/{rdmavt, hfi1, qib}: Add a counter for credit waits Kamal Heib (4): RDMA: Introduce ib_port_phys_state enum RDMA/cxgb3: Use ib_device_set_netdev() RDMA/core: Add common iWARP query port RDMA/{cxgb3, cxgb4, i40iw}: Remove common code Lang Cheng (10): RDMA/hns: Clean up unnecessary initial assignment RDMA/hns: Update some comments style RDMA/hns: Handling the error return value of hem function RDMA/hns: Split bool statement and assign statement RDMA/hns: Refactor irq request code RDMA/hns: Remove unnecessary kzalloc RDMA/hns: Remove unuseful member RDMA/hns: Modify the data structure of hns_roce_av RDMA/hns: Fix cast from or to restricted __le32 for driver RDMA/hns: Add reset process for function-clear Leon Romanovsky (6): RDMA/mlx4: Separate creation of RWQ and QP RDMA/mlx4: Annotate boolean arguments as bool and not int RDMA/mlx5: Remove DEBUG ODP code RDMA/hns: Remove not used UAR assignment RDMA/mlx5: Annotate lock dependency in bind/unbind slave port RDMA: Delete DEBUG code Lijun Ou (13): RDMA/hns: Package the flow of creating cq RDMA/hns: Refactor the code of creating srq RDMA/hns: Refactor for hns_roce_v2_modify_qp function RDMA/hns: Use a separated function for setting extend sge paramters RDMA/hns: Package for hns_roce_rereg_user_mr function RDMA/hns: Refactor hem table mhop check and calculation RDMA/hns: Encapsulate some lines for setting sq size in user mode RDMA/hns: Optimize hns_roce_modify_qp function RDMA/hns: Use the new APIs for printing log RDMA/hns: Bugfix for creating qp attached to srq RDMA/hns: Remove the some magic number RDMA/hns: Fix wrong assignment of qp_access_flags RDMA/hns: Package operations of rq inline buffer into separate functions Mark Zhang (1): RDMA/mlx5: RDMA_RX flow type support for user applications Markus Elfring (1): RDMA/iwpm: Delete unnecessary checks before the macro call "dev_kfree_skb" Max Gurtovoy (1): IB/mlx5: Add CREATE_PSV/DESTROY_PSV for devx interface Michael Guralnik (2): IB/mlx5: Remove check of FW capabilities in ODP page fault handling IB/mlx5: Add page fault handler for DC initiator WQE Michal Kalderon (1): qed*: Change dpi_addr to be denoted with __iomem Mike Marciniszyn (1): IB/hfi1: Remove unused define Moni Shoua (1): RDMA/core: Make invalidate_range a device operation Navid Emamdoost (1): RDMA: Fix goto target to release the allocated memory Parav Pandit (6): RDMA/core: Annotate destroy of mutex to ensure that it is released as unlocked IB/mlx5: Avoid unnecessary typecast RDMA/core: Support netlink commands in non init_net net namespaces IB/mlx5: Refactor code for counters allocation IB/mlx5: Support per device q counters in switchdev mode IB/bnxt_re: Do not notifify GID change event Sergey Gorenko (1): IB/iser: Support up to 16MB data transfer in a single command Stephen Boyd (1): infiniband: Remove dev_err() usage after platform_get_irq() Weihang Li (3): RDMA/hns: Remove redundant print in hns_roce_v2_ceq_int() RDMA/hns: Disable alw_lcl_lpbk of SSU RDMA/hns: Logic optimization of wc_flags Wenpeng Liang (2): RDMA/hns: Remove if-else judgment statements for creating srq RDMA/hns: Delete the not-used lines Xi Wang (3): RDMA/hns: optimize the duplicated code for qpc setting flow RDMA/hns: Bugfix for slab-out-of-bounds when unloading hip08 driver RDMA/hns: bugfix for slab-out-of-bounds when loading hip08 driver Yangyang Li (2): RDMA/hns: Refactor hns_roce_v2_set_hem for hip08 RDMA/hns: Modify pi vlaue when cq overflows Yishai Hadas (2): IB/mlx5: Add legacy events to DEVX list IB/mlx5: Expose XRQ legacy commands over the DEVX interface Yixian Liu (4): RDMA/hns: Refactor eq table init for hip08 RDMA/hns: Update the prompt message for creating and destroy qp RDMA/hns: Remove unnessary init for cmq reg RDMA/hns: Optimize cmd init and mode selection for hip08 YueHaibing (3): RDMA/hns: remove set but not used variable 'irq_num' RDMA/hns: remove obsolete Kconfig comment RDMA/hns: Use devm_platform_ioremap_resource() to simplify code chenglang (1): RDMA/hns: Optimize hns_roce_mhop_alloc function. Documentation/infiniband/core_locking.rst | 8 +- drivers/infiniband/Kconfig | 1 + drivers/infiniband/core/addr.c | 2 +- drivers/infiniband/core/cache.c | 1 + drivers/infiniband/core/cma.c | 2 +- drivers/infiniband/core/cma_configfs.c | 8 +- drivers/infiniband/core/core_priv.h | 24 +- drivers/infiniband/core/counters.c | 8 +- drivers/infiniband/core/cq.c | 28 + drivers/infiniband/core/device.c | 129 +++- drivers/infiniband/core/fmr_pool.c | 13 - drivers/infiniband/core/iwpm_msg.c | 17 +- drivers/infiniband/core/iwpm_util.c | 15 +- drivers/infiniband/core/netlink.c | 63 +- drivers/infiniband/core/nldev.c | 20 +- drivers/infiniband/core/sa_query.c | 2 +- drivers/infiniband/core/sysfs.c | 30 +- drivers/infiniband/core/umem.c | 50 +- drivers/infiniband/core/umem_odp.c | 437 ++++++----- drivers/infiniband/core/user_mad.c | 2 +- drivers/infiniband/core/uverbs_cmd.c | 5 +- drivers/infiniband/core/uverbs_main.c | 4 + drivers/infiniband/core/verbs.c | 1 + drivers/infiniband/hw/bnxt_re/hw_counters.c | 2 +- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 6 +- drivers/infiniband/hw/bnxt_re/main.c | 1 - drivers/infiniband/hw/cxgb3/iwch_provider.c | 45 +- drivers/infiniband/hw/cxgb4/provider.c | 24 - drivers/infiniband/hw/efa/efa.h | 3 + drivers/infiniband/hw/efa/efa_com.c | 70 +- drivers/infiniband/hw/efa/efa_com_cmd.c | 165 ++-- drivers/infiniband/hw/efa/efa_com_cmd.h | 23 + drivers/infiniband/hw/efa/efa_main.c | 2 + drivers/infiniband/hw/efa/efa_verbs.c | 91 ++- drivers/infiniband/hw/hfi1/chip.c | 2 + drivers/infiniband/hw/hfi1/chip.h | 1 + drivers/infiniband/hw/hfi1/mad.c | 45 +- drivers/infiniband/hw/hfi1/rc.c | 15 +- drivers/infiniband/hw/hfi1/tid_rdma.c | 8 + drivers/infiniband/hw/hfi1/trace_tid.h | 38 + drivers/infiniband/hw/hfi1/user_sdma.h | 6 - drivers/infiniband/hw/hfi1/verbs.c | 17 +- drivers/infiniband/hw/hns/Kconfig | 8 - drivers/infiniband/hw/hns/hns_roce_ah.c | 23 +- drivers/infiniband/hw/hns/hns_roce_cmd.c | 11 +- drivers/infiniband/hw/hns/hns_roce_cq.c | 186 +++-- drivers/infiniband/hw/hns/hns_roce_device.h | 95 ++- drivers/infiniband/hw/hns/hns_roce_hem.c | 252 +++--- drivers/infiniband/hw/hns/hns_roce_hem.h | 6 +- drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 69 +- drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 1065 +++++++++++++++----------- drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 7 +- drivers/infiniband/hw/hns/hns_roce_main.c | 11 +- drivers/infiniband/hw/hns/hns_roce_mr.c | 434 ++++++----- drivers/infiniband/hw/hns/hns_roce_qp.c | 359 +++++---- drivers/infiniband/hw/hns/hns_roce_srq.c | 296 +++---- drivers/infiniband/hw/i40iw/i40iw_verbs.c | 11 - drivers/infiniband/hw/mlx4/main.c | 3 +- drivers/infiniband/hw/mlx4/mr.c | 7 +- drivers/infiniband/hw/mlx4/qp.c | 242 ++++-- drivers/infiniband/hw/mlx5/devx.c | 26 + drivers/infiniband/hw/mlx5/flow.c | 13 +- drivers/infiniband/hw/mlx5/main.c | 131 ++-- drivers/infiniband/hw/mlx5/mem.c | 13 - drivers/infiniband/hw/mlx5/mlx5_ib.h | 2 + drivers/infiniband/hw/mlx5/mr.c | 38 +- drivers/infiniband/hw/mlx5/odp.c | 172 ++--- drivers/infiniband/hw/mlx5/qp.c | 25 +- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 4 +- drivers/infiniband/hw/qedr/main.c | 2 +- drivers/infiniband/hw/qedr/qedr.h | 2 +- drivers/infiniband/hw/qedr/verbs.c | 7 +- drivers/infiniband/hw/qib/qib_file_ops.c | 3 +- drivers/infiniband/hw/qib/qib_rc.c | 10 +- drivers/infiniband/hw/qib/qib_sysfs.c | 2 + drivers/infiniband/hw/usnic/usnic_ib_main.c | 10 +- drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 9 +- drivers/infiniband/sw/rxe/rxe.h | 4 - drivers/infiniband/sw/rxe/rxe_param.h | 2 +- drivers/infiniband/sw/rxe/rxe_verbs.c | 6 +- drivers/infiniband/sw/siw/siw_qp_tx.c | 23 +- drivers/infiniband/sw/siw/siw_verbs.c | 3 +- drivers/infiniband/ulp/iser/iscsi_iser.h | 7 +- drivers/infiniband/ulp/srpt/ib_srpt.c | 4 +- drivers/net/ethernet/mellanox/mlx5/core/rl.c | 6 +- drivers/net/ethernet/qlogic/qed/qed_rdma.c | 5 +- fs/cifs/smbdirect.c | 10 +- include/Kbuild | 6 - include/linux/mlx5/device.h | 9 + include/linux/qed/qed_rdma_if.h | 2 +- include/rdma/ib.h | 2 + include/rdma/ib_umem_odp.h | 48 +- include/rdma/ib_verbs.h | 78 +- include/rdma/iw_portmap.h | 3 + include/rdma/opa_port_info.h | 2 + include/rdma/rdma_netlink.h | 10 +- include/rdma/rdma_vt.h | 1 + include/rdma/rdmavt_cq.h | 1 + include/rdma/rdmavt_qp.h | 35 + include/rdma/signature.h | 2 + include/uapi/rdma/mlx5_user_ioctl_verbs.h | 1 + net/9p/trans_rdma.c | 6 +- net/sunrpc/xprtrdma/svc_rdma_transport.c | 8 +- net/sunrpc/xprtrdma/verbs.c | 13 +- 104 files changed, 3072 insertions(+), 2213 deletions(-) (diffstat from tag for-linus-merged)