]> git.ipfire.org Git - thirdparty/linux.git/commit
appletalk: stop storing per-interface state in struct net_device
authorJakub Kicinski <kuba@kernel.org>
Mon, 15 Jun 2026 22:29:34 +0000 (15:29 -0700)
committerJakub Kicinski <kuba@kernel.org>
Tue, 16 Jun 2026 21:37:06 +0000 (14:37 -0700)
commit023f9b0f2f4ffbf78ce9dfb8fbacb767c8e97162
treed4e35425926f86ef0afd8b411f8eb62852c27534
parentffaf8967735e7271a4a1362840bcfbbf2a7a722b
appletalk: stop storing per-interface state in struct net_device

AppleTalk keeps its per-interface control block (struct atalk_iface)
directly in struct netdevice (dev->atalk_ptr). This is the only thing
tying the protocol into the core net_device layout and is the sole
blocker to moving AppleTalk out of tree.

Replace dev->atalk_ptr with a small ifindex-keyed hashtable internal
to ddp.c. The existing atalk_interfaces list stays the owner of the iface
objects; the hashtable is purely a fast dev->iface index and reuses
the same atalk_interfaces_lock.

AFAICT this patch does not make this code any more racy than it already
is, I'm sure Sashiko will point out some basically existing bugs.
AFAICT atalk_interfaces_lock is the innermost lock already.

Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Link: https://patch.msgid.link/20260615222935.947233-2-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Documentation/networking/net_cachelines/net_device.rst
include/linux/atalk.h
include/linux/netdevice.h
net/appletalk/ddp.c