aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorBenoit Boissinot <bboissin+ipw2100@gmail.com>2005-09-15 13:30:28 -0400
committerJames Ketrenos <jketreno@linux.intel.com>2005-11-07 18:51:54 -0500
commit97a78ca968b84a5e9d8854622b4760cec5058f77 (patch)
tree79a8105f17bab5db404d1f9bd49b3fa916fd1eb1 /drivers/net
parent87bb5e3814572b85cf5d4650fb1f88267411845f (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>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/ipw2200.c19
-rw-r--r--drivers/net/wireless/ipw2200.h2
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
128static struct iw_statistics *ipw_get_wireless_stats(struct net_device *dev);
128static void ipw_remove_current_network(struct ipw_priv *priv); 129static void ipw_remove_current_network(struct ipw_priv *priv);
129static void ipw_rx(struct ipw_priv *priv); 130static void ipw_rx(struct ipw_priv *priv);
130static int ipw_queue_tx_reclaim(struct ipw_priv *priv, 131static 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
10004static 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;