[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250327135659.2057487-1-sdf@fomichev.me>
Date: Thu, 27 Mar 2025 06:56:48 -0700
From: Stanislav Fomichev <sdf@...ichev.me>
To: netdev@...r.kernel.org
Cc: davem@...emloft.net,
edumazet@...gle.com,
kuba@...nel.org,
pabeni@...hat.com
Subject: [PATCH net v2 00/11] net: hold instance lock during NETDEV_UP/REGISTER/UNREGISTER
Solving the issue reported by Cosmin in [0] requires consistent
lock during NETDEV_UP/REGISTER/UNREGISTER notifiers. This series
addresses that (along with some other fixes in net/ipv4/devinet.c
and net/ipv6/addrconf.c) and appends the patches from Jakub
that were conditional on locked NETDEV_UNREGISTER.
0: https://lore.kernel.org/netdev/700fa36b94cbd57cfea2622029b087643c80cbc9.camel@nvidia.com/
v2:
- export netdev_get_by_index_lock
- new patch: add netdev_lockdep_set_classes to mlx5
- new patch: exercise notifiers in netdevsim
- ignore specific locked netdev in call_netdevice_register_notifiers,
not all
Jakub Kicinski (3):
net: designate XSK pool pointers in queues as "ops protected"
netdev: add "ops compat locking" helpers
netdev: don't hold rtnl_lock over nl queue info get when possible
Stanislav Fomichev (8):
net: switch to netif_disable_lro in inetdev_init
net: hold instance lock during NETDEV_REGISTER/UP/UNREGISTER
net: use netif_disable_lro in ipv6_add_dev
net: release instance lock during NETDEV_UNREGISTER for bond/team
net/mlx5e: use netdev_lockdep_set_classes
netdevsim: add dummy device notifiers
net: dummy: request ops lock
docs: net: document netdev notifier expectations
Documentation/networking/netdevices.rst | 18 +++
drivers/net/bonding/bond_main.c | 2 +
drivers/net/dummy.c | 1 +
.../net/ethernet/mellanox/mlx5/core/en_main.c | 2 +
drivers/net/netdevsim/netdev.c | 58 +++++++++
drivers/net/netdevsim/netdevsim.h | 3 +
drivers/net/team/team_core.c | 2 +
include/linux/netdevice.h | 2 +
include/net/netdev_lock.h | 16 +++
include/net/netdev_rx_queue.h | 6 +-
net/core/dev.c | 117 ++++++++++++++----
net/core/dev.h | 16 ++-
net/core/netdev-genl.c | 18 ++-
net/ipv4/devinet.c | 2 +-
net/ipv6/addrconf.c | 17 ++-
net/xdp/xsk_buff_pool.c | 7 +-
16 files changed, 245 insertions(+), 42 deletions(-)
--
2.48.1
Powered by blists - more mailing lists