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.h23
1 files changed, 11 insertions, 12 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 5128dd7634cb..cebe677e153b 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -432,8 +432,7 @@ struct net_device
432 432
433 /* register/unregister state machine */ 433 /* register/unregister state machine */
434 enum { NETREG_UNINITIALIZED=0, 434 enum { NETREG_UNINITIALIZED=0,
435 NETREG_REGISTERING, /* called register_netdevice */ 435 NETREG_REGISTERED, /* completed register_netdevice */
436 NETREG_REGISTERED, /* completed register todo */
437 NETREG_UNREGISTERING, /* called unregister_netdevice */ 436 NETREG_UNREGISTERING, /* called unregister_netdevice */
438 NETREG_UNREGISTERED, /* completed unregister todo */ 437 NETREG_UNREGISTERED, /* completed unregister todo */
439 NETREG_RELEASED, /* called free_netdev */ 438 NETREG_RELEASED, /* called free_netdev */
@@ -505,6 +504,8 @@ struct net_device
505 504
506 /* class/net/name entry */ 505 /* class/net/name entry */
507 struct class_device class_dev; 506 struct class_device class_dev;
507 /* space for optional statistics and wireless sysfs groups */
508 struct attribute_group *sysfs_groups[3];
508}; 509};
509 510
510#define NETDEV_ALIGN 32 511#define NETDEV_ALIGN 32
@@ -828,21 +829,19 @@ static inline void netif_rx_schedule(struct net_device *dev)
828 __netif_rx_schedule(dev); 829 __netif_rx_schedule(dev);
829} 830}
830 831
831 832/* Try to reschedule poll. Called by dev->poll() after netif_rx_complete().
832static inline void __netif_rx_reschedule(struct net_device *dev, int undo) 833 * Do not inline this?
833{ 834 */
834 dev->quota += undo;
835 list_add_tail(&dev->poll_list, &__get_cpu_var(softnet_data).poll_list);
836 __raise_softirq_irqoff(NET_RX_SOFTIRQ);
837}
838
839/* Try to reschedule poll. Called by dev->poll() after netif_rx_complete(). */
840static inline int netif_rx_reschedule(struct net_device *dev, int undo) 835static inline int netif_rx_reschedule(struct net_device *dev, int undo)
841{ 836{
842 if (netif_rx_schedule_prep(dev)) { 837 if (netif_rx_schedule_prep(dev)) {
843 unsigned long flags; 838 unsigned long flags;
839
840 dev->quota += undo;
841
844 local_irq_save(flags); 842 local_irq_save(flags);
845 __netif_rx_reschedule(dev, undo); 843 list_add_tail(&dev->poll_list, &__get_cpu_var(softnet_data).poll_list);
844 __raise_softirq_irqoff(NET_RX_SOFTIRQ);
846 local_irq_restore(flags); 845 local_irq_restore(flags);
847 return 1; 846 return 1;
848 } 847 }