diff options
author | Benoit Boissinot <bboissin+ipw2100@gmail.com> | 2005-09-15 13:30:28 -0400 |
---|---|---|
committer | James Ketrenos <jketreno@linux.intel.com> | 2005-11-07 18:51:54 -0500 |
commit | 97a78ca968b84a5e9d8854622b4760cec5058f77 (patch) | |
tree | 79a8105f17bab5db404d1f9bd49b3fa916fd1eb1 | |
parent | 87bb5e3814572b85cf5d4650fb1f88267411845f (diff) |
Fix 'Driver using old /proc/net/wireless support, please fix driver !' message.
Wireless extensions moved the get_wireless_stats handler from being
in net_device into wireless_handler.
Signed-off-by: Benoit Boissinot <benoit.boissinot@ens-lyon.org>
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
-rw-r--r-- | drivers/net/wireless/ipw2200.c | 19 | ||||
-rw-r--r-- | drivers/net/wireless/ipw2200.h | 2 |
2 files changed, 14 insertions, 7 deletions
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c index 0b1c6fe54262..b89ede14419c 100644 --- a/drivers/net/wireless/ipw2200.c +++ b/drivers/net/wireless/ipw2200.c | |||
@@ -125,6 +125,7 @@ static int ipw_send_qos_info_command(struct ipw_priv *priv, struct ieee80211_qos | |||
125 | *qos_param); | 125 | *qos_param); |
126 | #endif /* CONFIG_IPW_QOS */ | 126 | #endif /* CONFIG_IPW_QOS */ |
127 | 127 | ||
128 | static struct iw_statistics *ipw_get_wireless_stats(struct net_device *dev); | ||
128 | static void ipw_remove_current_network(struct ipw_priv *priv); | 129 | static void ipw_remove_current_network(struct ipw_priv *priv); |
129 | static void ipw_rx(struct ipw_priv *priv); | 130 | static void ipw_rx(struct ipw_priv *priv); |
130 | static int ipw_queue_tx_reclaim(struct ipw_priv *priv, | 131 | static int ipw_queue_tx_reclaim(struct ipw_priv *priv, |
@@ -8883,6 +8884,13 @@ static int ipw_wx_get_range(struct net_device *dev, | |||
8883 | range->num_frequency = i; | 8884 | range->num_frequency = i; |
8884 | 8885 | ||
8885 | up(&priv->sem); | 8886 | up(&priv->sem); |
8887 | |||
8888 | /* Event capability (kernel + driver) */ | ||
8889 | range->event_capa[0] = (IW_EVENT_CAPA_K_0 | | ||
8890 | IW_EVENT_CAPA_MASK(SIOCGIWTHRSPY) | | ||
8891 | IW_EVENT_CAPA_MASK(SIOCGIWAP)); | ||
8892 | range->event_capa[1] = IW_EVENT_CAPA_K_1; | ||
8893 | |||
8886 | IPW_DEBUG_WX("GET Range\n"); | 8894 | IPW_DEBUG_WX("GET Range\n"); |
8887 | return 0; | 8895 | return 0; |
8888 | } | 8896 | } |
@@ -9999,10 +10007,9 @@ static struct iw_handler_def ipw_wx_handler_def = { | |||
9999 | .num_private_args = ARRAY_SIZE(ipw_priv_args), | 10007 | .num_private_args = ARRAY_SIZE(ipw_priv_args), |
10000 | .private = ipw_priv_handler, | 10008 | .private = ipw_priv_handler, |
10001 | .private_args = ipw_priv_args, | 10009 | .private_args = ipw_priv_args, |
10010 | .get_wireless_stats = ipw_get_wireless_stats, | ||
10002 | }; | 10011 | }; |
10003 | 10012 | ||
10004 | static struct iw_public_data ipw_wx_data; | ||
10005 | |||
10006 | /* | 10013 | /* |
10007 | * Get wireless statistics. | 10014 | * Get wireless statistics. |
10008 | * Called by /proc/net/wireless | 10015 | * Called by /proc/net/wireless |
@@ -11487,9 +11494,6 @@ static int ipw_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
11487 | SET_MODULE_OWNER(net_dev); | 11494 | SET_MODULE_OWNER(net_dev); |
11488 | SET_NETDEV_DEV(net_dev, &pdev->dev); | 11495 | SET_NETDEV_DEV(net_dev, &pdev->dev); |
11489 | 11496 | ||
11490 | ipw_wx_data.spy_data = &priv->ieee->spy_data; | ||
11491 | ipw_wx_data.ieee80211 = priv->ieee; | ||
11492 | |||
11493 | down(&priv->sem); | 11497 | down(&priv->sem); |
11494 | 11498 | ||
11495 | priv->ieee->hard_start_xmit = ipw_net_hard_start_xmit; | 11499 | priv->ieee->hard_start_xmit = ipw_net_hard_start_xmit; |
@@ -11514,8 +11518,9 @@ static int ipw_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
11514 | net_dev->get_stats = ipw_net_get_stats; | 11518 | net_dev->get_stats = ipw_net_get_stats; |
11515 | net_dev->set_multicast_list = ipw_net_set_multicast_list; | 11519 | net_dev->set_multicast_list = ipw_net_set_multicast_list; |
11516 | net_dev->set_mac_address = ipw_net_set_mac_address; | 11520 | net_dev->set_mac_address = ipw_net_set_mac_address; |
11517 | net_dev->get_wireless_stats = ipw_get_wireless_stats; | 11521 | priv->wireless_data.spy_data = &priv->ieee->spy_data; |
11518 | net_dev->wireless_data = &ipw_wx_data; | 11522 | priv->wireless_data.ieee80211 = priv->ieee; |
11523 | net_dev->wireless_data = &priv->wireless_data; | ||
11519 | net_dev->wireless_handlers = &ipw_wx_handler_def; | 11524 | net_dev->wireless_handlers = &ipw_wx_handler_def; |
11520 | net_dev->ethtool_ops = &ipw_ethtool_ops; | 11525 | net_dev->ethtool_ops = &ipw_ethtool_ops; |
11521 | net_dev->irq = pdev->irq; | 11526 | net_dev->irq = pdev->irq; |
diff --git a/drivers/net/wireless/ipw2200.h b/drivers/net/wireless/ipw2200.h index 28f1216f8ea4..3e7699430c6c 100644 --- a/drivers/net/wireless/ipw2200.h +++ b/drivers/net/wireless/ipw2200.h | |||
@@ -1228,6 +1228,8 @@ struct ipw_priv { | |||
1228 | 1228 | ||
1229 | struct iw_statistics wstats; | 1229 | struct iw_statistics wstats; |
1230 | 1230 | ||
1231 | struct iw_public_data wireless_data; | ||
1232 | |||
1231 | struct workqueue_struct *workqueue; | 1233 | struct workqueue_struct *workqueue; |
1232 | 1234 | ||
1233 | struct work_struct adhoc_check; | 1235 | struct work_struct adhoc_check; |