summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBreno Leitao <leitao@debian.org>2026-05-12 03:46:41 -0700
committerJakub Kicinski <kuba@kernel.org>2026-05-13 18:09:13 -0700
commit7bb1daff3612276357b28d0dee2a32301be97dfd (patch)
tree8b19724d982dcf51f47147ba1a6033b4b273ba1f
parent597bfa943131511e668235f112c70e806ca36e5d (diff)
netpoll: rename and export netpoll_zap_completion_queue()
zap_completion_queue() drains the per-CPU softnet completion queue. Rename it with the netpoll_ prefix shared by the rest of the subsystem's public API, and promote it from file-static to EXPORT_SYMBOL_NS_GPL in the NETDEV_INTERNAL namespace so the upcoming netconsole-side find_skb() can call it once the function moves out. A forward declaration is added to include/linux/netpoll.h, and the old file-static forward declaration is dropped. No functional change. Suggested-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Breno Leitao <leitao@debian.org> Link: https://patch.msgid.link/20260512-netconsole_split-v2-8-1191d14ad66d@debian.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--include/linux/netpoll.h1
-rw-r--r--net/core/netpoll.c9
2 files changed, 5 insertions, 5 deletions
diff --git a/include/linux/netpoll.h b/include/linux/netpoll.h
index 1877d42ccbcc..f986f7486cb8 100644
--- a/include/linux/netpoll.h
+++ b/include/linux/netpoll.h
@@ -74,6 +74,7 @@ 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);
struct sk_buff *find_skb(struct netpoll *np, int len, int reserve);
+void netpoll_zap_completion_queue(void);
#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 c148b3b68cec..e4cda0aa4d48 100644
--- a/net/core/netpoll.c
+++ b/net/core/netpoll.c
@@ -51,8 +51,6 @@
sizeof(struct udphdr) + \
MAX_UDP_CHUNK)
-static void zap_completion_queue(void);
-
static unsigned int carrier_timeout = 4;
module_param(carrier_timeout, uint, 0644);
@@ -199,7 +197,7 @@ void netpoll_poll_dev(struct net_device *dev)
up(&ni->dev_lock);
- zap_completion_queue();
+ netpoll_zap_completion_queue();
}
EXPORT_SYMBOL(netpoll_poll_dev);
@@ -238,7 +236,7 @@ static void refill_skbs(struct netpoll *np)
}
}
-static void zap_completion_queue(void)
+void netpoll_zap_completion_queue(void)
{
unsigned long flags;
struct softnet_data *sd = &get_cpu_var(softnet_data);
@@ -265,13 +263,14 @@ static void zap_completion_queue(void)
put_cpu_var(softnet_data);
}
+EXPORT_SYMBOL_NS_GPL(netpoll_zap_completion_queue, "NETDEV_INTERNAL");
struct sk_buff *find_skb(struct netpoll *np, int len, int reserve)
{
int count = 0;
struct sk_buff *skb;
- zap_completion_queue();
+ netpoll_zap_completion_queue();
repeat:
skb = alloc_skb(len, GFP_ATOMIC);