This pull request is targeting net-next and rdma-next branches. These patches have been reviewed by netdev and rdma mailing lists[1]. This series adds RDMA support to the ice driver for E810 devices and converts the i40e driver to use the auxiliary bus infrastructure for X722 devices. The PCI netdev drivers register auxiliary RDMA devices that will bind to auxiliary drivers registered by the new irdma module. [1] https://lore.kernel.org/netdev/20210520143809.819-1-shiraz.saleem@xxxxxxxxx/ --- v3: - ice_aq_add_rdma_qsets(), ice_cfg_vsi_rdma(), ice_[ena|dis]_vsi_rdma_qset(), and ice_cfg_rdma_fltr() no longer return ice_status - Remove null check from ice_aq_add_rdma_qsets() v2: - Added patch 'i40e: Replace one-element array with flexible-array member' Changes since linked review (v6): - Removed unnecessary checks in i40e_client_device_register() and i40e_client_device_unregister() - Simplified the i40e_client_device_register() API --- The following are changes since commit 6efb943b8616ec53a5e444193dccf1af9ad627b5: Linux 5.13-rc1 and are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/linux iwl-next Dave Ertman (4): iidc: Introduce iidc.h ice: Initialize RDMA support ice: Implement iidc operations ice: Register auxiliary device to provide RDMA Gustavo A. R. Silva (1): i40e: Replace one-element array with flexible-array member Shiraz Saleem (2): i40e: Prep i40e header for aux bus conversion i40e: Register auxiliary devices to provide RDMA MAINTAINERS | 1 + drivers/infiniband/hw/i40iw/i40iw_main.c | 5 +- drivers/net/ethernet/intel/Kconfig | 2 + drivers/net/ethernet/intel/i40e/i40e.h | 2 + drivers/net/ethernet/intel/i40e/i40e_client.c | 132 +++++-- drivers/net/ethernet/intel/i40e/i40e_main.c | 1 + drivers/net/ethernet/intel/ice/Makefile | 1 + drivers/net/ethernet/intel/ice/ice.h | 44 ++- .../net/ethernet/intel/ice/ice_adminq_cmd.h | 33 ++ drivers/net/ethernet/intel/ice/ice_common.c | 220 +++++++++++- drivers/net/ethernet/intel/ice/ice_common.h | 9 + drivers/net/ethernet/intel/ice/ice_dcb_lib.c | 19 + .../net/ethernet/intel/ice/ice_hw_autogen.h | 3 +- drivers/net/ethernet/intel/ice/ice_idc.c | 334 ++++++++++++++++++ drivers/net/ethernet/intel/ice/ice_idc_int.h | 14 + drivers/net/ethernet/intel/ice/ice_lag.c | 2 + drivers/net/ethernet/intel/ice/ice_lib.c | 11 + drivers/net/ethernet/intel/ice/ice_lib.h | 2 +- drivers/net/ethernet/intel/ice/ice_main.c | 142 ++++++-- drivers/net/ethernet/intel/ice/ice_sched.c | 69 +++- drivers/net/ethernet/intel/ice/ice_switch.c | 28 ++ drivers/net/ethernet/intel/ice/ice_switch.h | 4 + drivers/net/ethernet/intel/ice/ice_type.h | 4 + include/linux/net/intel/i40e_client.h | 12 +- include/linux/net/intel/iidc.h | 100 ++++++ 25 files changed, 1135 insertions(+), 59 deletions(-) create mode 100644 drivers/net/ethernet/intel/ice/ice_idc.c create mode 100644 drivers/net/ethernet/intel/ice/ice_idc_int.h create mode 100644 include/linux/net/intel/iidc.h -- 2.26.2