[PATCH net-next v2 0/5] net: devlink: return the driver name in devlink_nl_info_fill

Vincent Mailhol
2022-11-27T08:16:44Z

The driver name is available in device_driver::name. Right now,
drivers still have to report this piece of information themselves in
their devlink_ops::info_get callback function.

The goal of this series is to have the devlink core to report this
information instead of the drivers.

The first two patches clean up the mlxsw driver for both the ethtool
and the devlink (both are supposed to return the same information so
the ethtool got included as well). This is split in two patches
because of the different Fixes tag.

The third patch fulfills the actual goal of this series: modify
devlink core to report the driver name and clean-up all drivers. Both
as to be done in an atomic change to avoid attribute duplication.

The fourth patch removes the devlink_info_driver_name_put() function
to prevent future drivers from reporting the driver name themselves.

Finally, the fifth and last patch allows the core to call
devlink_nl_info_fill() even if the devlink_ops::info_get() callback is
NULL. This allows to do further more clean up in the drivers.
---
* Changelog *

RFC v1 -> v2

* drop the RFC tag

* big rework following the discussion on RFC:
https://lore.kernel.org/netdev/20221122154934.13937-1-mailhol.vincent@wanadoo.fr/
Went from one patch to a series of five patches:

* drop the idea to report the USB serial number following Greg's
comment:
https://lore.kernel.org/linux-usb/Y3+VfNdt%2FK7UtRcw@kroah.com/

Vincent Mailhol (5):
mlxsw: minimal: fix mlxsw_m_module_get_drvinfo() to correctly report
driver name
mlxsw: core: fix mlxsw_devlink_info_get() to correctly report driver
name
net: devlink: let the core report the driver name instead of the
drivers
net: devlink: remove devlink_info_driver_name_put()
net: devlink: make the devlink_ops::info_get() callback optional

.../marvell/octeontx2/otx2_cpt_devlink.c | 4 ---
drivers/net/dsa/hirschmann/hellcreek.c | 5 ---
drivers/net/dsa/mv88e6xxx/devlink.c | 5 ---
drivers/net/dsa/sja1105/sja1105_devlink.c | 12 ++-----
.../net/ethernet/broadcom/bnxt/bnxt_devlink.c | 4 ---
.../freescale/dpaa2/dpaa2-eth-devlink.c | 11 +-----
.../ethernet/fungible/funeth/funeth_devlink.c | 7 ----
.../hisilicon/hns3/hns3pf/hclge_devlink.c | 5 ---
.../hisilicon/hns3/hns3vf/hclgevf_devlink.c | 5 ---
drivers/net/ethernet/intel/ice/ice_devlink.c | 6 ----
.../marvell/octeontx2/af/rvu_devlink.c | 7 ----
.../marvell/octeontx2/nic/otx2_devlink.c | 15 --------
.../marvell/prestera/prestera_devlink.c | 5 ---
.../net/ethernet/mellanox/mlx5/core/devlink.c | 4 ---
drivers/net/ethernet/mellanox/mlxsw/core.c | 3 +-
drivers/net/ethernet/mellanox/mlxsw/minimal.c | 2 +-
.../net/ethernet/netronome/nfp/nfp_devlink.c | 4 ---
.../ethernet/pensando/ionic/ionic_devlink.c | 4 ---
drivers/net/ethernet/qlogic/qed/qed_devlink.c | 4 ---
drivers/net/netdevsim/dev.c | 3 --
drivers/ptp/ptp_ocp.c | 4 ---
include/net/devlink.h | 2 --
net/core/devlink.c | 35 ++++++++++++-------
23 files changed, 29 insertions(+), 127 deletions(-)

--
2.37.4