summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/net/netconsole.c17
-rw-r--r--include/linux/netpoll.h1
-rw-r--r--net/core/netpoll.c15
3 files changed, 16 insertions, 17 deletions
diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
index 199d0e1ac17b..03913302328c 100644
--- a/drivers/net/netconsole.c
+++ b/drivers/net/netconsole.c
@@ -48,6 +48,7 @@
#include <linux/utsname.h>
#include <linux/rtnetlink.h>
#include <linux/workqueue.h>
+#include <linux/delay.h>
MODULE_AUTHOR("Matt Mackall <mpm@selenic.com>");
MODULE_DESCRIPTION("Console driver for network interfaces");
@@ -356,6 +357,20 @@ static void netconsole_skb_pool_flush(struct netconsole_target *nt)
skb_queue_purge_reason(&nt->skb_pool, SKB_CONSUMED);
}
+static void netcons_wait_carrier(struct netpoll *np, struct net_device *ndev)
+{
+ unsigned long atmost;
+
+ atmost = jiffies + netpoll_get_carrier_timeout() * HZ;
+ while (!netif_carrier_ok(ndev)) {
+ if (time_after(jiffies, atmost)) {
+ np_notice(np, "timeout waiting for carrier\n");
+ break;
+ }
+ msleep(1);
+ }
+}
+
/*
* Returns a pointer to a string representation of the identifier used
* to select the egress interface for the given netpoll instance. buf
@@ -504,7 +519,7 @@ static int netcons_netpoll_setup(struct netconsole_target *nt)
}
rtnl_unlock();
- netpoll_wait_carrier(np, ndev);
+ netcons_wait_carrier(np, ndev);
rtnl_lock();
}
diff --git a/include/linux/netpoll.h b/include/linux/netpoll.h
index ef88a30b11f4..1c6b1eec5efd 100644
--- a/include/linux/netpoll.h
+++ b/include/linux/netpoll.h
@@ -69,7 +69,6 @@ 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);
#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 f385ae4b70f5..fe1e0cda5d6b 100644
--- a/net/core/netpoll.c
+++ b/net/core/netpoll.c
@@ -392,21 +392,6 @@ out:
}
EXPORT_SYMBOL_GPL(__netpoll_setup);
-void netpoll_wait_carrier(struct netpoll *np, struct net_device *ndev)
-{
- unsigned long atmost;
-
- atmost = jiffies + carrier_timeout * HZ;
- while (!netif_carrier_ok(ndev)) {
- if (time_after(jiffies, atmost)) {
- np_notice(np, "timeout waiting for carrier\n");
- break;
- }
- msleep(1);
- }
-}
-EXPORT_SYMBOL_GPL(netpoll_wait_carrier);
-
static void rcu_cleanup_netpoll_info(struct rcu_head *rcu_head)
{
struct netpoll_info *npinfo =