net: replace dev_addr_sem with netdev instance lock
authorStanislav Fomichev <sdf@fomichev.me>
Wed, 5 Mar 2025 16:37:29 +0000 (08:37 -0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 6 Mar 2025 20:59:45 +0000 (12:59 -0800)
commitdf43d8bf10316a7c3b1e47e3cc0057a54df4a5b8
treed31253686f41f2bdad50762ea5b86bf56cc7ad25
parent2bcf4772e45adb00649a4e9cbff14b08a144f9e3
net: replace dev_addr_sem with netdev instance lock

Lockdep reports possible circular dependency in [0]. Instead of
fixing the ordering, replace global dev_addr_sem with netdev
instance lock. Most of the paths that set/get mac are RTNL
protected. Two places where it's not, convert to explicit
locking:
- sysfs address_show
- dev_get_mac_address via dev_ioctl

0: https://netdev-3.bots.linux.dev/vmksft-forwarding-dbg/results/993321/24-router-bridge-1d-lag-sh/stderr

Signed-off-by: Stanislav Fomichev <sdf@fomichev.me>
Link: https://patch.msgid.link/20250305163732.2766420-12-sdf@fomichev.me
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/tap.c
drivers/net/tun.c
include/linux/netdevice.h
net/core/dev.c
net/core/dev.h
net/core/dev_api.c
net/core/dev_ioctl.c
net/core/net-sysfs.c
net/core/rtnetlink.c