From: Jakub Kicinski Date: Thu, 14 May 2026 01:09:15 +0000 (-0700) Subject: Merge branch 'netpoll-move-out-netconsole-specific-functions' X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=6bbc313bcbe994432ebab5d17fa65d11af0b5cf9;p=thirdparty%2Fkernel%2Flinux.git Merge branch 'netpoll-move-out-netconsole-specific-functions' Breno Leitao says: ==================== netpoll: move out netconsole-specific functions netpoll and netconsole were created together and their code has been intermixed in net/core/netpoll.c for decades. The result is that netpoll exposes two send-side interfaces: * a generic "give me an sk_buff" path used by every stacked-device driver (bonding, team, vlan, bridge, macvlan, dsa), * a second path that takes raw bytes and builds a UDP/IP/Ethernet packet -- exclusively for netconsole. The packet builder, an skb pool allocator, and several netconsole-specific helpers all live next to the generic plumbing even though no other consumer ever touches them. Worse, every netpoll user pays for that overlap: struct netpoll carries an skb_pool and a refill work_struct that only netconsole's find_skb() ever reads from, and net-core has to review unrelated changes (TTL, hop limit, IP ID generation, source MAC selection, pool sizing) just because they happen to be coded inside netpoll. This is a waste of memory for something useless. This series splits the netconsole-specific code out: * netpoll_send_udp() and its private helpers (push_ipv6, push_ipv4, push_eth, push_udp, netpoll_udp_checksum, find_skb) move into drivers/net/netconsole.c, leaving netpoll with a single skb-only send interface that is the same for every user. The moves are one function per patch for reviewability; helpers are temporarily EXPORT_SYMBOL_GPL'd while netpoll_send_udp() is still in netpoll calling them, then those exports are dropped together once netpoll_send_udp() itself moves. The only new permanent export is zap_completion_queue(), needed because find_skb() still drains the per-CPU TX completion queue before allocating. struct netpoll is unchanged in this series; making the pool itself netconsole-private (and reclaiming the skb_pool / refill_wq fields for the rest of netpoll's users) is the natural follow-up, once this patchset lands. ==================== Link: https://patch.msgid.link/20260512-netconsole_split-v2-0-1191d14ad66d@debian.org Signed-off-by: Jakub Kicinski --- 6bbc313bcbe994432ebab5d17fa65d11af0b5cf9