aboutsummaryrefslogtreecommitdiffstats
path: root/net/ieee80211
diff options
context:
space:
mode:
authorDaniel Drake <dsd@gentoo.org>2006-11-21 22:15:46 -0500
committerJeff Garzik <jeff@garzik.org>2006-12-02 00:12:05 -0500
commit718cc4ca2bfb3263c7ea3ceba9c194f9cd7292e2 (patch)
treef737e1634f6b88867bd0ac70e8512e23a548644b /net/ieee80211
parentb1382edef9c06eca337e8982e6040e0699abab82 (diff)
[PATCH] ieee80211: Provide generic get_stats implementation
bcm43xx and ipw2100 currently duplicate the same simplistic get_stats handler. Additionally, zd1211rw requires the same handler to fix a bug where all stats are reported as 0. This patch adds a generic implementation to the ieee80211 layer, which drivers are free to override. Signed-off-by: Daniel Drake <dsd@gentoo.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/ieee80211')
-rw-r--r--net/ieee80211/ieee80211_module.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/net/ieee80211/ieee80211_module.c b/net/ieee80211/ieee80211_module.c
index f16e60ee9ce9..b1c6d1f717d9 100644
--- a/net/ieee80211/ieee80211_module.c
+++ b/net/ieee80211/ieee80211_module.c
@@ -123,6 +123,13 @@ static int ieee80211_change_mtu(struct net_device *dev, int new_mtu)
123 return 0; 123 return 0;
124} 124}
125 125
126static struct net_device_stats *ieee80211_generic_get_stats(
127 struct net_device *dev)
128{
129 struct ieee80211_device *ieee = netdev_priv(dev);
130 return &ieee->stats;
131}
132
126struct net_device *alloc_ieee80211(int sizeof_priv) 133struct net_device *alloc_ieee80211(int sizeof_priv)
127{ 134{
128 struct ieee80211_device *ieee; 135 struct ieee80211_device *ieee;
@@ -140,6 +147,10 @@ struct net_device *alloc_ieee80211(int sizeof_priv)
140 dev->hard_start_xmit = ieee80211_xmit; 147 dev->hard_start_xmit = ieee80211_xmit;
141 dev->change_mtu = ieee80211_change_mtu; 148 dev->change_mtu = ieee80211_change_mtu;
142 149
150 /* Drivers are free to override this if the generic implementation
151 * does not meet their needs. */
152 dev->get_stats = ieee80211_generic_get_stats;
153
143 ieee->dev = dev; 154 ieee->dev = dev;
144 155
145 err = ieee80211_networks_allocate(ieee); 156 err = ieee80211_networks_allocate(ieee);