Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net: update netdev_lock_{type,name}

Add missing entries in netdev_lock_type[] and netdev_lock_name[] :

CAN, MCTP, RAWIP, CAIF, IP6GRE, 6LOWPAN, NETLINK, VSOCKMON,
IEEE802154_MONITOR.

Also add a WARN_ONCE() in netdev_lock_pos() to help future bug hunting
next time a protocol is added without updating these arrays.

Fixes: 1a33e10e4a95 ("net: partially revert dynamic lockdep key changes")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20260108093244.830280-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Eric Dumazet and committed by
Jakub Kicinski
eb74c19f 81c734da

+19 -6
+19 -6
net/core/dev.c
··· 478 478 ARPHRD_IEEE1394, ARPHRD_EUI64, ARPHRD_INFINIBAND, ARPHRD_SLIP, 479 479 ARPHRD_CSLIP, ARPHRD_SLIP6, ARPHRD_CSLIP6, ARPHRD_RSRVD, 480 480 ARPHRD_ADAPT, ARPHRD_ROSE, ARPHRD_X25, ARPHRD_HWX25, 481 + ARPHRD_CAN, ARPHRD_MCTP, 481 482 ARPHRD_PPP, ARPHRD_CISCO, ARPHRD_LAPB, ARPHRD_DDCMP, 482 - ARPHRD_RAWHDLC, ARPHRD_TUNNEL, ARPHRD_TUNNEL6, ARPHRD_FRAD, 483 + ARPHRD_RAWHDLC, ARPHRD_RAWIP, 484 + ARPHRD_TUNNEL, ARPHRD_TUNNEL6, ARPHRD_FRAD, 483 485 ARPHRD_SKIP, ARPHRD_LOOPBACK, ARPHRD_LOCALTLK, ARPHRD_FDDI, 484 486 ARPHRD_BIF, ARPHRD_SIT, ARPHRD_IPDDP, ARPHRD_IPGRE, 485 487 ARPHRD_PIMREG, ARPHRD_HIPPI, ARPHRD_ASH, ARPHRD_ECONET, 486 488 ARPHRD_IRDA, ARPHRD_FCPP, ARPHRD_FCAL, ARPHRD_FCPL, 487 489 ARPHRD_FCFABRIC, ARPHRD_IEEE80211, ARPHRD_IEEE80211_PRISM, 488 - ARPHRD_IEEE80211_RADIOTAP, ARPHRD_PHONET, ARPHRD_PHONET_PIPE, 489 - ARPHRD_IEEE802154, ARPHRD_VOID, ARPHRD_NONE}; 490 + ARPHRD_IEEE80211_RADIOTAP, 491 + ARPHRD_IEEE802154, ARPHRD_IEEE802154_MONITOR, 492 + ARPHRD_PHONET, ARPHRD_PHONET_PIPE, 493 + ARPHRD_CAIF, ARPHRD_IP6GRE, ARPHRD_NETLINK, ARPHRD_6LOWPAN, 494 + ARPHRD_VSOCKMON, 495 + ARPHRD_VOID, ARPHRD_NONE}; 490 496 491 497 static const char *const netdev_lock_name[] = { 492 498 "_xmit_NETROM", "_xmit_ETHER", "_xmit_EETHER", "_xmit_AX25", ··· 501 495 "_xmit_IEEE1394", "_xmit_EUI64", "_xmit_INFINIBAND", "_xmit_SLIP", 502 496 "_xmit_CSLIP", "_xmit_SLIP6", "_xmit_CSLIP6", "_xmit_RSRVD", 503 497 "_xmit_ADAPT", "_xmit_ROSE", "_xmit_X25", "_xmit_HWX25", 498 + "_xmit_CAN", "_xmit_MCTP", 504 499 "_xmit_PPP", "_xmit_CISCO", "_xmit_LAPB", "_xmit_DDCMP", 505 - "_xmit_RAWHDLC", "_xmit_TUNNEL", "_xmit_TUNNEL6", "_xmit_FRAD", 500 + "_xmit_RAWHDLC", "_xmit_RAWIP", 501 + "_xmit_TUNNEL", "_xmit_TUNNEL6", "_xmit_FRAD", 506 502 "_xmit_SKIP", "_xmit_LOOPBACK", "_xmit_LOCALTLK", "_xmit_FDDI", 507 503 "_xmit_BIF", "_xmit_SIT", "_xmit_IPDDP", "_xmit_IPGRE", 508 504 "_xmit_PIMREG", "_xmit_HIPPI", "_xmit_ASH", "_xmit_ECONET", 509 505 "_xmit_IRDA", "_xmit_FCPP", "_xmit_FCAL", "_xmit_FCPL", 510 506 "_xmit_FCFABRIC", "_xmit_IEEE80211", "_xmit_IEEE80211_PRISM", 511 - "_xmit_IEEE80211_RADIOTAP", "_xmit_PHONET", "_xmit_PHONET_PIPE", 512 - "_xmit_IEEE802154", "_xmit_VOID", "_xmit_NONE"}; 507 + "_xmit_IEEE80211_RADIOTAP", 508 + "_xmit_IEEE802154", "_xmit_IEEE802154_MONITOR", 509 + "_xmit_PHONET", "_xmit_PHONET_PIPE", 510 + "_xmit_CAIF", "_xmit_IP6GRE", "_xmit_NETLINK", "_xmit_6LOWPAN", 511 + "_xmit_VSOCKMON", 512 + "_xmit_VOID", "_xmit_NONE"}; 513 513 514 514 static struct lock_class_key netdev_xmit_lock_key[ARRAY_SIZE(netdev_lock_type)]; 515 515 static struct lock_class_key netdev_addr_lock_key[ARRAY_SIZE(netdev_lock_type)]; ··· 528 516 if (netdev_lock_type[i] == dev_type) 529 517 return i; 530 518 /* the last key is used by default */ 519 + WARN_ONCE(1, "netdev_lock_pos() could not find dev_type=%u\n", dev_type); 531 520 return ARRAY_SIZE(netdev_lock_type) - 1; 532 521 } 533 522