diff options
Diffstat (limited to 'include/linux/netdevice.h')
-rw-r--r-- | include/linux/netdevice.h | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 1a528548cd1d..ac0c92b1e002 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -42,6 +42,8 @@ | |||
42 | struct vlan_group; | 42 | struct vlan_group; |
43 | struct ethtool_ops; | 43 | struct ethtool_ops; |
44 | struct netpoll_info; | 44 | struct netpoll_info; |
45 | /* 802.11 specific */ | ||
46 | struct wireless_dev; | ||
45 | /* source back-compat hooks */ | 47 | /* source back-compat hooks */ |
46 | #define SET_ETHTOOL_OPS(netdev,ops) \ | 48 | #define SET_ETHTOOL_OPS(netdev,ops) \ |
47 | ( (netdev)->ethtool_ops = (ops) ) | 49 | ( (netdev)->ethtool_ops = (ops) ) |
@@ -347,13 +349,15 @@ struct net_device | |||
347 | 349 | ||
348 | 350 | ||
349 | struct net_device_stats* (*get_stats)(struct net_device *dev); | 351 | struct net_device_stats* (*get_stats)(struct net_device *dev); |
352 | struct net_device_stats stats; | ||
350 | 353 | ||
354 | #ifdef CONFIG_WIRELESS_EXT | ||
351 | /* List of functions to handle Wireless Extensions (instead of ioctl). | 355 | /* List of functions to handle Wireless Extensions (instead of ioctl). |
352 | * See <net/iw_handler.h> for details. Jean II */ | 356 | * See <net/iw_handler.h> for details. Jean II */ |
353 | const struct iw_handler_def * wireless_handlers; | 357 | const struct iw_handler_def * wireless_handlers; |
354 | /* Instance data managed by the core of Wireless Extensions. */ | 358 | /* Instance data managed by the core of Wireless Extensions. */ |
355 | struct iw_public_data * wireless_data; | 359 | struct iw_public_data * wireless_data; |
356 | 360 | #endif | |
357 | const struct ethtool_ops *ethtool_ops; | 361 | const struct ethtool_ops *ethtool_ops; |
358 | 362 | ||
359 | /* | 363 | /* |
@@ -398,6 +402,8 @@ struct net_device | |||
398 | void *ip6_ptr; /* IPv6 specific data */ | 402 | void *ip6_ptr; /* IPv6 specific data */ |
399 | void *ec_ptr; /* Econet specific data */ | 403 | void *ec_ptr; /* Econet specific data */ |
400 | void *ax25_ptr; /* AX.25 specific data */ | 404 | void *ax25_ptr; /* AX.25 specific data */ |
405 | struct wireless_dev *ieee80211_ptr; /* IEEE 802.11 specific data, | ||
406 | assign before registering */ | ||
401 | 407 | ||
402 | /* | 408 | /* |
403 | * Cache line mostly used on receive path (including eth_type_trans()) | 409 | * Cache line mostly used on receive path (including eth_type_trans()) |
@@ -647,8 +653,10 @@ static inline void netif_start_queue(struct net_device *dev) | |||
647 | static inline void netif_wake_queue(struct net_device *dev) | 653 | static inline void netif_wake_queue(struct net_device *dev) |
648 | { | 654 | { |
649 | #ifdef CONFIG_NETPOLL_TRAP | 655 | #ifdef CONFIG_NETPOLL_TRAP |
650 | if (netpoll_trap()) | 656 | if (netpoll_trap()) { |
657 | clear_bit(__LINK_STATE_XOFF, &dev->state); | ||
651 | return; | 658 | return; |
659 | } | ||
652 | #endif | 660 | #endif |
653 | if (test_and_clear_bit(__LINK_STATE_XOFF, &dev->state)) | 661 | if (test_and_clear_bit(__LINK_STATE_XOFF, &dev->state)) |
654 | __netif_schedule(dev); | 662 | __netif_schedule(dev); |
@@ -656,10 +664,6 @@ static inline void netif_wake_queue(struct net_device *dev) | |||
656 | 664 | ||
657 | static inline void netif_stop_queue(struct net_device *dev) | 665 | static inline void netif_stop_queue(struct net_device *dev) |
658 | { | 666 | { |
659 | #ifdef CONFIG_NETPOLL_TRAP | ||
660 | if (netpoll_trap()) | ||
661 | return; | ||
662 | #endif | ||
663 | set_bit(__LINK_STATE_XOFF, &dev->state); | 667 | set_bit(__LINK_STATE_XOFF, &dev->state); |
664 | } | 668 | } |
665 | 669 | ||