aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/netdevice.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/netdevice.h')
-rw-r--r--include/linux/netdevice.h27
1 files changed, 12 insertions, 15 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index f671cd2f133f..3a70f553b28f 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -910,6 +910,17 @@ static inline int netif_rx_reschedule(struct net_device *dev, int undo)
910 return 0; 910 return 0;
911} 911}
912 912
913/* same as netif_rx_complete, except that local_irq_save(flags)
914 * has already been issued
915 */
916static inline void __netif_rx_complete(struct net_device *dev)
917{
918 BUG_ON(!test_bit(__LINK_STATE_RX_SCHED, &dev->state));
919 list_del(&dev->poll_list);
920 smp_mb__before_clear_bit();
921 clear_bit(__LINK_STATE_RX_SCHED, &dev->state);
922}
923
913/* Remove interface from poll list: it must be in the poll list 924/* Remove interface from poll list: it must be in the poll list
914 * on current cpu. This primitive is called by dev->poll(), when 925 * on current cpu. This primitive is called by dev->poll(), when
915 * it completes the work. The device cannot be out of poll list at this 926 * it completes the work. The device cannot be out of poll list at this
@@ -920,10 +931,7 @@ static inline void netif_rx_complete(struct net_device *dev)
920 unsigned long flags; 931 unsigned long flags;
921 932
922 local_irq_save(flags); 933 local_irq_save(flags);
923 BUG_ON(!test_bit(__LINK_STATE_RX_SCHED, &dev->state)); 934 __netif_rx_complete(dev);
924 list_del(&dev->poll_list);
925 smp_mb__before_clear_bit();
926 clear_bit(__LINK_STATE_RX_SCHED, &dev->state);
927 local_irq_restore(flags); 935 local_irq_restore(flags);
928} 936}
929 937
@@ -940,17 +948,6 @@ static inline void netif_poll_enable(struct net_device *dev)
940 clear_bit(__LINK_STATE_RX_SCHED, &dev->state); 948 clear_bit(__LINK_STATE_RX_SCHED, &dev->state);
941} 949}
942 950
943/* same as netif_rx_complete, except that local_irq_save(flags)
944 * has already been issued
945 */
946static inline void __netif_rx_complete(struct net_device *dev)
947{
948 BUG_ON(!test_bit(__LINK_STATE_RX_SCHED, &dev->state));
949 list_del(&dev->poll_list);
950 smp_mb__before_clear_bit();
951 clear_bit(__LINK_STATE_RX_SCHED, &dev->state);
952}
953
954static inline void netif_tx_lock(struct net_device *dev) 951static inline void netif_tx_lock(struct net_device *dev)
955{ 952{
956 spin_lock(&dev->_xmit_lock); 953 spin_lock(&dev->_xmit_lock);