Hi Linus, Here is the RDMA pull request for 6.3 - as is now typical this is mostly a whole range of unrelated changes in drivers. The few notable series are highlighted in the tag. Thanks, Jason The following changes since commit e8d018dd0257f744ca50a729e3d042cf2ec9da65: Linux 6.3-rc3 (2023-03-19 13:27:55 -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 531094dc7164718d28ebb581d729807d7e846363: RDMA/efa: Add rdma write capability to device caps (2023-04-21 19:18:58 -0300) ---------------------------------------------------------------- v6.4 merge window RDMA pull request Usual wide collection of unrelated items in drivers: - Driver bug fixes and treewide cleanups in hfi1, siw, qib, mlx5, rxe, usnic, usnic, bnxt_re, ocrdma, iser * Unnecessary NULL checks * kmap obsolescence * pci_enable_pcie_error_reporting() obsolescence * Unused variables and macros * trace event related warnings * casting warnings - Code cleanups for irdm and erdma - EFA reporting of 128 byte PCIe TLP support - mlx5 more agressively uses the out of order HW feature - Big rework of how state machines and tasks work in rxe - Fix a syzkaller found crash netdev refcount leak in siw - bnxt_re revises their HW description header - Congestion control for bnxt_re - Use mmu_notifiers more safely in hfi1 - mlx5 gets better support for PCIe relaxed ordering inside VMs ---------------------------------------------------------------- Avihai Horon (4): RDMA/mlx5: Remove pcie_relaxed_ordering_enabled() check for RO write RDMA/mlx5: Check pcie_relaxed_ordering_enabled() in UMR net/mlx5: Update relaxed ordering read HCA capabilities RDMA/mlx5: Allow relaxed ordering read in VFs and VMs Bjorn Helgaas (2): IB/hfi1: Drop redundant pci_enable_pcie_error_reporting() IB/qib: Drop redundant pci_enable_pcie_error_reporting() Bob Pearson (18): RDMA/rxe: Replace exists by rxe in rxe.c RDMA/rxe: Change rxe_dbg to rxe_dbg_dev RDMA/rxe: Extend dbg log messages to err and info RDMA/rxe: Add error messages RDMA/rxe: Convert tasklet args to queue pairs RDMA/rxe: Cleanup reset state handling in rxe_resp.c RDMA/rxe: Cleanup error state handling in rxe_comp.c RDMA/rxe: Remove qp reference counting in tasks RDMA/rxe: Remove __rxe_do_task() RDMA/rxe: Make tasks schedule each other RDMA/rxe: Rewrite rxe_task.c RDMA/rxe: Remove tasklet call from rxe_cq.c RDMA/rxe: Fix incorrect TASKLET_STATE_SCHED check in rxe_task.c RDMA/rxe: Remove qp->resp.state RDMA/rxe: Remove qp->comp.state RDMA/rxe: Remove qp->req.state RDMA/rxe: Move code to check if drained to subroutine RDMA/rxe: Protect QP state with qp->state_lock Cai Huoqing (1): RDMA/usnic: Remove redundant pci_clear_master Cheng Xu (4): RDMA/erdma: Unify byte ordering APIs usage RDMA/erdma: Eliminate unnecessary casting of EQ doorbells RDMA/erdma: Minor refactor of device init flow RDMA/erdma: Use fixed hardware page size Christophe JAILLET (1): RDMA/irdma: Slightly optimize irdma_form_ah_cm_frame() Daisuke Matsuda (1): RDMA/rxe: Fix spinlock recursion deadlock on requester Dan Carpenter (1): RDMA/mlx4: Prevent shift wrapping in set_user_sq_size() Daniil Dulov (1): RDMA/siw: Fix potential page_array out of range access Dean Luick (1): IB/hfi1: Remove trace newlines Ehab Ababneh (1): IB/hfi1: Suppress useless compiler warnings Gustavo A. R. Silva (1): RDMA/core: Fix multiple -Warray-bounds warnings Ira Weiny (1): RDMA/qib: Remove deprecated kmap() call Jason Gunthorpe (1): RDMA: Add ib_virt_dma_to_page() Kang Chen (1): IB/hifi1: add a null check of kzalloc_node in hfi1_ipoib_txreq_init Kees Cook (1): IB/rdmavt: Fix target union member for rvt_post_one_wr() Krzysztof Czurylo (1): RDMA/irdma: Refactor HW statistics Leon Romanovsky (3): Enable IB out-of-order by default in mlx5 Merge branch 'mlx5-next' into wip/leon-for-next RDMA/rxe: Clean kzalloc failure paths Mark Bloch (1): RDMA/mlx5: Fix flow counter query via DEVX Mark Zhang (2): RDMA/cm: Trace icm_send_rej event before the cm state is reset RDMA/mlx5: Use correct device num_ports when modify DC Max Gurtovoy (3): IB/iser: remove unused macros IB/iser: centralize setting desc type and done callback IB/iser: remove redundant new line Michal Swiatkowski (1): RDMA/irdma: Change name of interrupts Natalia Petrova (1): RDMA/rdmavt: Delete unnecessary NULL check Or Har-Toov (3): net/mlx5: Expose bits for enabling out-of-order by default RDMA/mlx5: Disable out-of-order in integrity enabled QPs net/mlx5: Set out of order (ooo) by default Patrick Kelsey (3): IB/hfi1: Fix SDMA mmu_rb_node not being evicted in LRU order IB/hfi1: Fix bugs with non-PAGE_SIZE-end multi-iovec user SDMA requests IB/hfi1: Place struct mmu_rb_handler on cache line start Patrisious Haddad (2): net/mlx5: Introduce other vport query for Q-counters RDMA/mlx5: Expand switchdev Q-counters to expose representor statistics Rohit Chavan (1): RDMA/mlx5: Coding style fix reported by checkpatch Saravanan Vajravel (1): RDMA/srpt: Add a check for valid 'mad_agent' pointer Selvin Xavier (8): RDMA/bnxt_re: Add resize_cq support RDMA/bnxt_re: Update HW interface headers RDMA/bnxt_re: Remove HW queue mapping from RoCE Driver RDMA/bnxt_re: Convert RCFW_CMD_PREP macro to static inline function RDMA/bnxt_re: Reduce number of argumets to control path command APIs RDMA/bnxt_re: RoCE slow path TLV support RDAM/bnxt_re: Use tlv apis while processing the slow path commands RDMA/bnxt_re: Enable congestion control by default Sindhu Devale (1): RDMA/irdma: Refactor PBLE functions Tatyana Nikolova (1): RDMA/irdma: Remove a redundant irdma_arp_table() call Tejun Heo (1): RDMA/irdma: Drop spurious WQ_UNBOUND from alloc_ordered_workqueue() call Tetsuo Handa (1): RDMA/siw: Remove namespace check from siw_netdev_event() Tom Rix (4): RDMA/bnxt_re: remove unused num_srqne_processed and num_cqne_processed variables RDMA/ocrdma: remove unused discard_cnt variable RDMA/mlx5: Remove unused num_alloc_xa_entries variable IB/qib: Remove unused cnt variable Yang Li (1): RDMA/cma: Remove NULL check before dev_{put, hold} Yixing Liu (1): RDMA/hns: Add new command to support query vf caps Yonatan Nachum (2): RDMA/efa: Add data polling capability feature bit RDMA/efa: Add rdma write capability to device caps Zhu Yanjun (1): RDMA/rxe: Fix the error "trying to register non-static key in rxe_cleanup_task" drivers/infiniband/core/cm.c | 3 +- drivers/infiniband/core/cma.c | 6 +- drivers/infiniband/core/user_mad.c | 23 +- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 109 + drivers/infiniband/hw/bnxt_re/ib_verbs.h | 3 + drivers/infiniband/hw/bnxt_re/main.c | 103 +- drivers/infiniband/hw/bnxt_re/qplib_fp.c | 211 +- drivers/infiniband/hw/bnxt_re/qplib_fp.h | 5 + drivers/infiniband/hw/bnxt_re/qplib_rcfw.c | 97 +- drivers/infiniband/hw/bnxt_re/qplib_rcfw.h | 66 +- drivers/infiniband/hw/bnxt_re/qplib_sp.c | 337 +- drivers/infiniband/hw/bnxt_re/qplib_sp.h | 68 +- drivers/infiniband/hw/bnxt_re/qplib_tlv.h | 162 + drivers/infiniband/hw/bnxt_re/roce_hsi.h | 7423 ++++++++++++-------- drivers/infiniband/hw/efa/efa_admin_cmds_defs.h | 17 +- drivers/infiniband/hw/efa/efa_io_defs.h | 42 +- drivers/infiniband/hw/efa/efa_verbs.c | 11 +- drivers/infiniband/hw/erdma/erdma.h | 2 +- drivers/infiniband/hw/erdma/erdma_cm.h | 10 +- drivers/infiniband/hw/erdma/erdma_cmdq.c | 42 +- drivers/infiniband/hw/erdma/erdma_cq.c | 2 +- drivers/infiniband/hw/erdma/erdma_eq.c | 9 +- drivers/infiniband/hw/erdma/erdma_hw.h | 4 + drivers/infiniband/hw/erdma/erdma_main.c | 39 +- drivers/infiniband/hw/erdma/erdma_verbs.c | 17 +- drivers/infiniband/hw/hfi1/chip.c | 18 +- drivers/infiniband/hw/hfi1/driver.c | 2 +- drivers/infiniband/hw/hfi1/file_ops.c | 2 +- drivers/infiniband/hw/hfi1/init.c | 12 +- drivers/infiniband/hw/hfi1/ipoib_tx.c | 6 +- drivers/infiniband/hw/hfi1/mmu_rb.c | 84 +- drivers/infiniband/hw/hfi1/mmu_rb.h | 22 +- drivers/infiniband/hw/hfi1/pcie.c | 2 - drivers/infiniband/hw/hfi1/pio.c | 2 +- drivers/infiniband/hw/hfi1/sdma.c | 21 +- drivers/infiniband/hw/hfi1/sdma.h | 16 +- drivers/infiniband/hw/hfi1/sdma_txreq.h | 1 + drivers/infiniband/hw/hfi1/trace_dbg.h | 7 + drivers/infiniband/hw/hfi1/trace_mmu.h | 4 - drivers/infiniband/hw/hfi1/user_sdma.c | 600 +- drivers/infiniband/hw/hfi1/user_sdma.h | 5 - drivers/infiniband/hw/hfi1/verbs.c | 4 +- drivers/infiniband/hw/hfi1/vnic_sdma.c | 1 + drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 189 +- drivers/infiniband/hw/hns/hns_roce_hw_v2.h | 31 +- drivers/infiniband/hw/irdma/cm.c | 2 +- drivers/infiniband/hw/irdma/ctrl.c | 324 +- drivers/infiniband/hw/irdma/defs.h | 9 +- drivers/infiniband/hw/irdma/hw.c | 17 +- drivers/infiniband/hw/irdma/i40iw_hw.c | 60 +- drivers/infiniband/hw/irdma/icrdma_hw.c | 51 + drivers/infiniband/hw/irdma/irdma.h | 1 + drivers/infiniband/hw/irdma/main.h | 3 + drivers/infiniband/hw/irdma/pble.c | 16 +- drivers/infiniband/hw/irdma/pble.h | 2 +- drivers/infiniband/hw/irdma/protos.h | 8 +- drivers/infiniband/hw/irdma/type.h | 166 +- drivers/infiniband/hw/irdma/utils.c | 172 +- drivers/infiniband/hw/irdma/verbs.c | 200 +- drivers/infiniband/hw/mlx4/qp.c | 8 +- drivers/infiniband/hw/mlx5/counters.c | 171 +- drivers/infiniband/hw/mlx5/devx.c | 33 +- drivers/infiniband/hw/mlx5/mr.c | 12 +- drivers/infiniband/hw/mlx5/qp.c | 19 +- drivers/infiniband/hw/mlx5/umr.c | 7 +- drivers/infiniband/hw/mlx5/umr.h | 3 +- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 2 - drivers/infiniband/hw/qib/qib_file_ops.c | 9 +- drivers/infiniband/hw/qib/qib_pcie.c | 8 - drivers/infiniband/hw/qib/qib_user_sdma.c | 11 +- drivers/infiniband/hw/usnic/usnic_ib_main.c | 2 - drivers/infiniband/sw/rdmavt/qp.c | 4 +- drivers/infiniband/sw/rxe/rxe.c | 16 +- drivers/infiniband/sw/rxe/rxe.h | 46 +- drivers/infiniband/sw/rxe/rxe_comp.c | 161 +- drivers/infiniband/sw/rxe/rxe_cq.c | 39 +- drivers/infiniband/sw/rxe/rxe_icrc.c | 4 +- drivers/infiniband/sw/rxe/rxe_loc.h | 7 +- drivers/infiniband/sw/rxe/rxe_mmap.c | 6 +- drivers/infiniband/sw/rxe/rxe_mr.c | 29 +- drivers/infiniband/sw/rxe/rxe_net.c | 11 +- drivers/infiniband/sw/rxe/rxe_qp.c | 263 +- drivers/infiniband/sw/rxe/rxe_queue.c | 5 +- drivers/infiniband/sw/rxe/rxe_recv.c | 15 +- drivers/infiniband/sw/rxe/rxe_req.c | 104 +- drivers/infiniband/sw/rxe/rxe_resp.c | 126 +- drivers/infiniband/sw/rxe/rxe_srq.c | 6 +- drivers/infiniband/sw/rxe/rxe_task.c | 268 +- drivers/infiniband/sw/rxe/rxe_task.h | 23 +- drivers/infiniband/sw/rxe/rxe_verbs.c | 983 ++- drivers/infiniband/sw/rxe/rxe_verbs.h | 14 - drivers/infiniband/sw/siw/siw_main.c | 3 - drivers/infiniband/sw/siw/siw_qp_rx.c | 6 +- drivers/infiniband/sw/siw/siw_qp_tx.c | 21 +- drivers/infiniband/sw/siw/siw_verbs.c | 4 +- drivers/infiniband/ulp/iser/iser_initiator.c | 17 +- drivers/infiniband/ulp/iser/iser_verbs.c | 6 - drivers/infiniband/ulp/srpt/ib_srpt.c | 23 +- drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h | 81 + .../net/ethernet/mellanox/mlx5/core/en/params.c | 3 +- .../net/ethernet/mellanox/mlx5/core/en_common.c | 9 +- drivers/net/ethernet/mellanox/mlx5/core/main.c | 3 + include/linux/mlx5/mlx5_ifc.h | 31 +- include/rdma/ib_verbs.h | 25 + include/uapi/rdma/bnxt_re-abi.h | 4 + include/uapi/rdma/efa-abi.h | 4 +- 106 files changed, 8007 insertions(+), 5519 deletions(-) create mode 100644 drivers/infiniband/hw/bnxt_re/qplib_tlv.h