aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/netdevice.h14
-rw-r--r--net/sched/sch_generic.c16
2 files changed, 18 insertions, 12 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 296cf93a65e0..d8e52edfd526 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -699,19 +699,9 @@ static inline int netif_carrier_ok(const struct net_device *dev)
699 699
700extern void __netdev_watchdog_up(struct net_device *dev); 700extern void __netdev_watchdog_up(struct net_device *dev);
701 701
702static inline void netif_carrier_on(struct net_device *dev) 702extern void netif_carrier_on(struct net_device *dev);
703{
704 if (test_and_clear_bit(__LINK_STATE_NOCARRIER, &dev->state))
705 linkwatch_fire_event(dev);
706 if (netif_running(dev))
707 __netdev_watchdog_up(dev);
708}
709 703
710static inline void netif_carrier_off(struct net_device *dev) 704extern void netif_carrier_off(struct net_device *dev);
711{
712 if (!test_and_set_bit(__LINK_STATE_NOCARRIER, &dev->state))
713 linkwatch_fire_event(dev);
714}
715 705
716/* Hot-plugging. */ 706/* Hot-plugging. */
717static inline int netif_device_present(struct net_device *dev) 707static inline int netif_device_present(struct net_device *dev)
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index 0d066c965342..99ceb91f0150 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -238,6 +238,20 @@ static void dev_watchdog_down(struct net_device *dev)
238 spin_unlock_bh(&dev->xmit_lock); 238 spin_unlock_bh(&dev->xmit_lock);
239} 239}
240 240
241void netif_carrier_on(struct net_device *dev)
242{
243 if (test_and_clear_bit(__LINK_STATE_NOCARRIER, &dev->state))
244 linkwatch_fire_event(dev);
245 if (netif_running(dev))
246 __netdev_watchdog_up(dev);
247}
248
249void netif_carrier_off(struct net_device *dev)
250{
251 if (!test_and_set_bit(__LINK_STATE_NOCARRIER, &dev->state))
252 linkwatch_fire_event(dev);
253}
254
241/* "NOOP" scheduler: the best scheduler, recommended for all interfaces 255/* "NOOP" scheduler: the best scheduler, recommended for all interfaces
242 under all circumstances. It is difficult to invent anything faster or 256 under all circumstances. It is difficult to invent anything faster or
243 cheaper. 257 cheaper.
@@ -600,6 +614,8 @@ void dev_shutdown(struct net_device *dev)
600} 614}
601 615
602EXPORT_SYMBOL(__netdev_watchdog_up); 616EXPORT_SYMBOL(__netdev_watchdog_up);
617EXPORT_SYMBOL(netif_carrier_on);
618EXPORT_SYMBOL(netif_carrier_off);
603EXPORT_SYMBOL(noop_qdisc); 619EXPORT_SYMBOL(noop_qdisc);
604EXPORT_SYMBOL(noop_qdisc_ops); 620EXPORT_SYMBOL(noop_qdisc_ops);
605EXPORT_SYMBOL(qdisc_create_dflt); 621EXPORT_SYMBOL(qdisc_create_dflt);