mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Breno Leitao <leitao@debian.org>
To: "David S. Miller" <davem@davemloft.net>,
	 Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	 Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>,
	 Andrew Lunn <andrew+netdev@lunn.ch>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	 gustavold@gmail.com, asantostc@gmail.com,
	Breno Leitao <leitao@debian.org>,
	 kernel-team@meta.com
Subject: [PATCH net-next 2/9] netpoll: export the netpoll_setup() helpers for netconsole
Date: Fri, 24 Jul 2026 08:04:10 -0700	[thread overview]
Message-ID: <20260724-netconsole_move_more_final-v1-2-a5f7691db81c@debian.org> (raw)
In-Reply-To: <20260724-netconsole_move_more_final-v1-0-a5f7691db81c@debian.org>

Temporarily export leaf functions that will be moved to netconsole.

The upcoming patch will move the setup function to netconsole, and
continue to call these leaf functions here in netpoll, then other
patches will move these exports functions to netconsole (and make them
statics).

In summary, these exports are temporary in order to make the patchset
digestible.

Signed-off-by: Breno Leitao <leitao@debian.org>
---
 include/linux/netpoll.h |  5 +++++
 net/core/netpoll.c      | 15 ++++++++++-----
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/include/linux/netpoll.h b/include/linux/netpoll.h
index d426d1844cac7..0877515fa7442 100644
--- a/include/linux/netpoll.h
+++ b/include/linux/netpoll.h
@@ -73,6 +73,11 @@ 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);
 unsigned int netpoll_get_carrier_timeout(void);
+void netpoll_wait_carrier(struct netpoll *np, struct net_device *ndev);
+char *egress_dev(struct netpoll *np, char *buf, size_t bufsz);
+int netpoll_take_ipv4(struct netpoll *np, struct net_device *ndev);
+int netpoll_take_ipv6(struct netpoll *np, struct net_device *ndev);
+bool netpoll_local_ip_unset(const 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 9b9fcc307958f..6a545063223ba 100644
--- a/net/core/netpoll.c
+++ b/net/core/netpoll.c
@@ -399,7 +399,7 @@ EXPORT_SYMBOL_GPL(__netpoll_setup);
  * be at least MAC_ADDR_STR_LEN + 1 to fit the formatted MAC address
  * and its NUL terminator.
  */
-static char *egress_dev(struct netpoll *np, char *buf, size_t bufsz)
+char *egress_dev(struct netpoll *np, char *buf, size_t bufsz)
 {
 	if (np->dev_name[0])
 		return np->dev_name;
@@ -407,8 +407,9 @@ static char *egress_dev(struct netpoll *np, char *buf, size_t bufsz)
 	snprintf(buf, bufsz, "%pM", np->dev_mac);
 	return buf;
 }
+EXPORT_SYMBOL_GPL(egress_dev);
 
-static void netpoll_wait_carrier(struct netpoll *np, struct net_device *ndev)
+void netpoll_wait_carrier(struct netpoll *np, struct net_device *ndev)
 {
 	unsigned long atmost;
 
@@ -421,11 +422,12 @@ static void netpoll_wait_carrier(struct netpoll *np, struct net_device *ndev)
 		msleep(1);
 	}
 }
+EXPORT_SYMBOL_GPL(netpoll_wait_carrier);
 
 /*
  * Take the IPv6 from ndev and populate local_ip structure in netpoll
  */
-static int netpoll_take_ipv6(struct netpoll *np, struct net_device *ndev)
+int netpoll_take_ipv6(struct netpoll *np, struct net_device *ndev)
 {
 	char buf[MAC_ADDR_STR_LEN + 1];
 	int err = -EDESTADDRREQ;
@@ -462,11 +464,12 @@ static int netpoll_take_ipv6(struct netpoll *np, struct net_device *ndev)
 	np_info(np, "local IPv6 %pI6c\n", &np->local_ip.in6);
 	return 0;
 }
+EXPORT_SYMBOL_GPL(netpoll_take_ipv6);
 
 /*
  * Take the IPv4 from ndev and populate local_ip structure in netpoll
  */
-static int netpoll_take_ipv4(struct netpoll *np, struct net_device *ndev)
+int netpoll_take_ipv4(struct netpoll *np, struct net_device *ndev)
 {
 	char buf[MAC_ADDR_STR_LEN + 1];
 	const struct in_ifaddr *ifa;
@@ -491,6 +494,7 @@ static int netpoll_take_ipv4(struct netpoll *np, struct net_device *ndev)
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(netpoll_take_ipv4);
 
 /*
  * Test whether the caller left np->local_ip unset, so that
@@ -502,12 +506,13 @@ static int netpoll_take_ipv4(struct netpoll *np, struct net_device *ndev)
  * doing so would misclassify a caller-supplied address as unset and
  * silently overwrite it with whatever address the device exposes.
  */
-static bool netpoll_local_ip_unset(const struct netpoll *np)
+bool netpoll_local_ip_unset(const struct netpoll *np)
 {
 	if (np->ipv6)
 		return ipv6_addr_any(&np->local_ip.in6);
 	return !np->local_ip.ip;
 }
+EXPORT_SYMBOL_GPL(netpoll_local_ip_unset);
 
 int netpoll_setup(struct netpoll *np)
 {

-- 
2.53.0-Meta


  parent reply	other threads:[~2026-07-24 15:05 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-24 15:04 [PATCH net-next 0/9] netpoll: finish untangling netconsole from netpoll Breno Leitao
2026-07-24 15:04 ` [PATCH net-next 1/9] netpoll: export carrier_timeout via netpoll_get_carrier_timeout() Breno Leitao
2026-07-27 23:24   ` Gustavo Luiz Duarte
2026-07-24 15:04 ` Breno Leitao [this message]
2026-07-27 23:25   ` [PATCH net-next 2/9] netpoll: export the netpoll_setup() helpers for netconsole Gustavo Luiz Duarte
2026-07-24 15:04 ` [PATCH net-next 3/9] netconsole: take over netpoll_setup() from netpoll Breno Leitao
2026-07-27 23:38   ` Gustavo Luiz Duarte
2026-07-24 15:04 ` [PATCH net-next 4/9] netconsole: move netpoll_local_ip_unset() as netcons_local_ip_unset() Breno Leitao
2026-07-27 23:49   ` Gustavo Luiz Duarte
2026-07-29 10:23     ` Breno Leitao
2026-07-29 14:05       ` Gustavo Luiz Duarte
2026-07-24 15:04 ` [PATCH net-next 5/9] netconsole: move netpoll_take_ipv4() as netcons_take_ipv4() Breno Leitao
2026-07-29 14:06   ` Gustavo Luiz Duarte
2026-07-24 15:04 ` [PATCH net-next 6/9] netconsole: move netpoll_take_ipv6() as netcons_take_ipv6() Breno Leitao
2026-07-29 14:07   ` Gustavo Luiz Duarte
2026-07-24 15:04 ` [PATCH net-next 7/9] netconsole: move egress_dev() as netcons_egress_dev() Breno Leitao
2026-07-29 14:07   ` Gustavo Luiz Duarte
2026-07-24 15:04 ` [PATCH net-next 8/9] netconsole: move local_ip/remote_ip/ipv6 to netconsole_target Breno Leitao
2026-07-29 14:08   ` Gustavo Luiz Duarte
2026-07-24 15:04 ` [PATCH net-next 9/9] netconsole: move netpoll_wait_carrier() as netcons_wait_carrier() Breno Leitao
2026-07-29 14:09   ` Gustavo Luiz Duarte
2026-07-30 10:20 ` [PATCH net-next 0/9] netpoll: finish untangling netconsole from netpoll patchwork-bot+netdevbpf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260724-netconsole_move_more_final-v1-2-a5f7691db81c@debian.org \
    --to=leitao@debian.org \
    --cc=andrew+netdev@lunn.ch \
    --cc=asantostc@gmail.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=gustavold@gmail.com \
    --cc=horms@kernel.org \
    --cc=kernel-team@meta.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome