[PATCH 5/9] netconsole: move skb_pool_flush() from netpoll

From: Breno Leitao

Date: Sun May 24 2026 - 12:16:01 EST


skb_pool_flush() has no callers left in net/core/netpoll.c after
netconsole took over the pool lifecycle. Inline its body into
netconsole_skb_pool_flush() (the only caller) and drop the function
and its export from netpoll. The prototype goes from
<linux/netpoll.h>.

Pure code motion: cancel_work_sync() + skb_queue_purge_reason()
semantics are unchanged.

Signed-off-by: Breno Leitao <leitao@xxxxxxxxxx>
---
drivers/net/netconsole.c | 5 ++++-
include/linux/netpoll.h | 1 -
net/core/netpoll.c | 10 ----------
3 files changed, 4 insertions(+), 12 deletions(-)

diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
index 76a569d487db..a8ced60bef7a 100644
--- a/drivers/net/netconsole.c
+++ b/drivers/net/netconsole.c
@@ -333,7 +333,10 @@ static void netconsole_skb_pool_init(struct netconsole_target *nt)

static void netconsole_skb_pool_flush(struct netconsole_target *nt)
{
- skb_pool_flush(&nt->np);
+ struct netpoll *np = &nt->np;
+
+ cancel_work_sync(&np->refill_wq);
+ skb_queue_purge_reason(&np->skb_pool, SKB_CONSUMED);
}

/* Attempts to resume logging to a deactivated target. */
diff --git a/include/linux/netpoll.h b/include/linux/netpoll.h
index bc491f600a71..e4b8f1f91e54 100644
--- a/include/linux/netpoll.h
+++ b/include/linux/netpoll.h
@@ -74,7 +74,6 @@ void netpoll_cleanup(struct netpoll *np);
void do_netpoll_cleanup(struct netpoll *np);
netdev_tx_t netpoll_send_skb(struct netpoll *np, struct sk_buff *skb);
void netpoll_zap_completion_queue(void);
-void skb_pool_flush(struct netpoll *np);

#ifdef CONFIG_NETPOLL
static inline void *netpoll_poll_lock(struct napi_struct *napi)
diff --git a/net/core/netpoll.c b/net/core/netpoll.c
index 2fca74b4ea75..796aab90e26e 100644
--- a/net/core/netpoll.c
+++ b/net/core/netpoll.c
@@ -327,16 +327,6 @@ netdev_tx_t netpoll_send_skb(struct netpoll *np, struct sk_buff *skb)
}
EXPORT_SYMBOL(netpoll_send_skb);

-void skb_pool_flush(struct netpoll *np)
-{
- struct sk_buff_head *skb_pool;
-
- cancel_work_sync(&np->refill_wq);
- skb_pool = &np->skb_pool;
- skb_queue_purge_reason(skb_pool, SKB_CONSUMED);
-}
-EXPORT_SYMBOL_GPL(skb_pool_flush);
-
int __netpoll_setup(struct netpoll *np, struct net_device *ndev)
{
struct netpoll_info *npinfo;

--
2.54.0