[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220317042023.1470039-1-kuba@kernel.org>
Date: Wed, 16 Mar 2022 21:20:18 -0700
From: Jakub Kicinski <kuba@...nel.org>
To: davem@...emloft.net
Cc: netdev@...r.kernel.org, jiri@...nulli.us, leonro@...dia.com,
saeedm@...dia.com, idosch@...sch.org, michael.chan@...adcom.com,
simon.horman@...igine.com, Jakub Kicinski <kuba@...nel.org>
Subject: [PATCH net-next 0/5] devlink: hold the instance lock in eswitch callbacks
Series number 2 in the effort to hold the devlink instance lock
in call driver callbacks. We have the following drivers using
this API:
- bnxt, nfp, netdevsim - their own locking is removed / simplified
by this series; all of them needed a lock to protect from changes
to the number of VFs while switching modes, now the VF config bus
callback takes the devlink instance lock via devl_lock();
- ice - appears not to allow changing modes while SR-IOV enabled,
so nothing to do there;
- liquidio - does not contain any locking;
- octeontx2/af - is very special but at least doesn't have locking
so doesn't get in the way either;
- mlx5 has a wealth of locks - I chickened out and dropped the lock
in the callbacks so that I can leave the driver be, for now.
The last one is obviously not ideal, but I would prefer to transition
the API already as it make take longer.
LMK if it's an abuse of power / I'm not thinking straight.
Jakub Kicinski (5):
bnxt: use the devlink instance lock to protect sriov
devlink: add explicitly locked flavor of the rate node APIs
netdevsim: replace port_list_lock with devlink instance lock
netdevsim: replace vfs_lock with devlink instance lock
devlink: hold the instance lock during eswitch_mode callbacks
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 1 -
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 6 --
.../net/ethernet/broadcom/bnxt/bnxt_sriov.c | 4 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c | 22 ++---
.../mellanox/mlx5/core/eswitch_offloads.c | 15 +++-
.../net/ethernet/netronome/nfp/nfp_devlink.c | 7 +-
drivers/net/netdevsim/dev.c | 85 +++++++++---------
drivers/net/netdevsim/netdevsim.h | 2 -
include/net/devlink.h | 4 +
net/core/devlink.c | 90 ++++++++++++-------
10 files changed, 128 insertions(+), 108 deletions(-)
--
2.34.1
Powered by blists - more mailing lists