Subject: [RFC PATCH net-next 0/6] ethtool: track custom RSS contexts in the core

From: <[email-masked]>
Date: Mon, 3 Apr 2023 17:32:57 +0100

From: Edward Cree <[email-masked]>

Make the core responsible for tracking the set of custom RSS contexts,
 their IDs, indirection tables, hash keys, and hash functions; this
 lets us get rid of duplicative code in drivers, and will allow us to
 support netlink dumps later.

This series only moves the sfc EF10 driver over to the new API; if the
 design is approved of, I plan to add patches to convert the other
 drivers and remove the legacy API.  (However, I don't have hardware
 for the drivers besides sfc, so I won't be able to test those myself.)

Edward Cree (6):
  net: ethtool: attach an IDR of custom RSS contexts to a netdevice
  net: ethtool: record custom RSS contexts in the IDR
  net: ethtool: let the core choose RSS context IDs
  net: ethtool: pass ctx_priv and create into .set_rxfh_context
  net: ethtool: add a mutex protecting RSS contexts
  sfc: use new .set_rxfh_context API

 .../net/ethernet/marvell/mvpp2/mvpp2_main.c   |   2 +-
 .../marvell/octeontx2/nic/otx2_ethtool.c      |   2 +-
 .../ethernet/mellanox/mlx5/core/en_ethtool.c  |   2 +-
 drivers/net/ethernet/sfc/ef10.c               |   2 +-
 drivers/net/ethernet/sfc/efx.c                |   2 +-
 drivers/net/ethernet/sfc/efx.h                |   2 +-
 drivers/net/ethernet/sfc/efx_common.c         |  10 +-
 drivers/net/ethernet/sfc/ethtool_common.c     |  96 ++++++-------
 drivers/net/ethernet/sfc/ethtool_common.h     |   4 +-
 drivers/net/ethernet/sfc/mcdi_filters.c       | 131 +++++++++---------
 drivers/net/ethernet/sfc/mcdi_filters.h       |   8 +-
 drivers/net/ethernet/sfc/net_driver.h         |  28 ++--
 drivers/net/ethernet/sfc/rx_common.c          |  64 ++-------
 drivers/net/ethernet/sfc/rx_common.h          |   8 +-
 drivers/net/ethernet/sfc/siena/ethtool.c      |   2 +-
 include/linux/ethtool.h                       |  66 ++++++++-
 include/linux/netdevice.h                     |   8 ++
 net/core/dev.c                                |  36 +++++
 net/ethtool/ioctl.c                           | 107 +++++++++++++-
 19 files changed, 359 insertions(+), 221 deletions(-)