diff options
| author | James Ketrenos <jketreno@linux.intel.com> | 2005-11-12 13:50:12 -0500 |
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2005-11-18 13:51:40 -0500 |
| commit | eaf8f53bc001d20aa59aa4519b71f11a1cc7f945 (patch) | |
| tree | 14976ddc4b0dab125a6e42bb503dcdaa4ff50f18 | |
| parent | a7a461b32fdff1e7db42b50db53840e4fa978384 (diff) | |
[PATCH] ipw2100: Fix 'Driver using old /proc/net/wireless...' message
ipw2100: Fix 'Driver using old /proc/net/wireless...' message
Wireless extensions moved the get_wireless_stats handler from being
in net_device into wireless_handler.
A prior instance of this patch resolved the issue for the ipw2200.
This one fixes it for the ipw2100.
Signed-off-by: Benoit Boissinot <benoit.boissinot@ens-lyon.org>
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
| -rw-r--r-- | drivers/net/wireless/ipw2100.c | 29 | ||||
| -rw-r--r-- | drivers/net/wireless/ipw2100.h | 2 |
2 files changed, 20 insertions, 11 deletions
diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c index a2e6214169e9..77d2a21d4cd0 100644 --- a/drivers/net/wireless/ipw2100.c +++ b/drivers/net/wireless/ipw2100.c | |||
| @@ -6344,7 +6344,8 @@ static struct net_device *ipw2100_alloc_device(struct pci_dev *pci_dev, | |||
| 6344 | dev->ethtool_ops = &ipw2100_ethtool_ops; | 6344 | dev->ethtool_ops = &ipw2100_ethtool_ops; |
| 6345 | dev->tx_timeout = ipw2100_tx_timeout; | 6345 | dev->tx_timeout = ipw2100_tx_timeout; |
| 6346 | dev->wireless_handlers = &ipw2100_wx_handler_def; | 6346 | dev->wireless_handlers = &ipw2100_wx_handler_def; |
| 6347 | dev->get_wireless_stats = ipw2100_wx_wireless_stats; | 6347 | priv->wireless_data.ieee80211 = priv->ieee; |
| 6348 | dev->wireless_data = &priv->wireless_data; | ||
| 6348 | dev->set_mac_address = ipw2100_set_address; | 6349 | dev->set_mac_address = ipw2100_set_address; |
| 6349 | dev->watchdog_timeo = 3 * HZ; | 6350 | dev->watchdog_timeo = 3 * HZ; |
| 6350 | dev->irq = 0; | 6351 | dev->irq = 0; |
| @@ -7178,6 +7179,11 @@ static int ipw2100_wx_get_range(struct net_device *dev, | |||
| 7178 | } | 7179 | } |
| 7179 | range->num_frequency = val; | 7180 | range->num_frequency = val; |
| 7180 | 7181 | ||
| 7182 | /* Event capability (kernel + driver) */ | ||
| 7183 | range->event_capa[0] = (IW_EVENT_CAPA_K_0 | | ||
| 7184 | IW_EVENT_CAPA_MASK(SIOCGIWAP)); | ||
| 7185 | range->event_capa[1] = IW_EVENT_CAPA_K_1; | ||
| 7186 | |||
| 7181 | IPW_DEBUG_WX("GET Range\n"); | 7187 | IPW_DEBUG_WX("GET Range\n"); |
| 7182 | 7188 | ||
| 7183 | return 0; | 7189 | return 0; |
| @@ -8446,16 +8452,6 @@ static iw_handler ipw2100_private_handler[] = { | |||
| 8446 | #endif /* CONFIG_IPW2100_MONITOR */ | 8452 | #endif /* CONFIG_IPW2100_MONITOR */ |
| 8447 | }; | 8453 | }; |
| 8448 | 8454 | ||
| 8449 | static struct iw_handler_def ipw2100_wx_handler_def = { | ||
| 8450 | .standard = ipw2100_wx_handlers, | ||
| 8451 | .num_standard = sizeof(ipw2100_wx_handlers) / sizeof(iw_handler), | ||
| 8452 | .num_private = sizeof(ipw2100_private_handler) / sizeof(iw_handler), | ||
| 8453 | .num_private_args = sizeof(ipw2100_private_args) / | ||
| 8454 | sizeof(struct iw_priv_args), | ||
| 8455 | .private = (iw_handler *) ipw2100_private_handler, | ||
| 8456 | .private_args = (struct iw_priv_args *)ipw2100_private_args, | ||
| 8457 | }; | ||
| 8458 | |||
| 8459 | /* | 8455 | /* |
| 8460 | * Get wireless statistics. | 8456 | * Get wireless statistics. |
| 8461 | * Called by /proc/net/wireless | 8457 | * Called by /proc/net/wireless |
| @@ -8597,6 +8593,17 @@ static struct iw_statistics *ipw2100_wx_wireless_stats(struct net_device *dev) | |||
| 8597 | return (struct iw_statistics *)NULL; | 8593 | return (struct iw_statistics *)NULL; |
| 8598 | } | 8594 | } |
| 8599 | 8595 | ||
| 8596 | static struct iw_handler_def ipw2100_wx_handler_def = { | ||
| 8597 | .standard = ipw2100_wx_handlers, | ||
| 8598 | .num_standard = sizeof(ipw2100_wx_handlers) / sizeof(iw_handler), | ||
| 8599 | .num_private = sizeof(ipw2100_private_handler) / sizeof(iw_handler), | ||
| 8600 | .num_private_args = sizeof(ipw2100_private_args) / | ||
| 8601 | sizeof(struct iw_priv_args), | ||
| 8602 | .private = (iw_handler *) ipw2100_private_handler, | ||
| 8603 | .private_args = (struct iw_priv_args *)ipw2100_private_args, | ||
| 8604 | .get_wireless_stats = ipw2100_wx_wireless_stats, | ||
| 8605 | }; | ||
| 8606 | |||
| 8600 | static void ipw2100_wx_event_work(struct ipw2100_priv *priv) | 8607 | static void ipw2100_wx_event_work(struct ipw2100_priv *priv) |
| 8601 | { | 8608 | { |
| 8602 | union iwreq_data wrqu; | 8609 | union iwreq_data wrqu; |
diff --git a/drivers/net/wireless/ipw2100.h b/drivers/net/wireless/ipw2100.h index 140fdf2a0a09..7c65b10bb164 100644 --- a/drivers/net/wireless/ipw2100.h +++ b/drivers/net/wireless/ipw2100.h | |||
| @@ -571,6 +571,8 @@ struct ipw2100_priv { | |||
| 571 | struct net_device *net_dev; | 571 | struct net_device *net_dev; |
| 572 | struct iw_statistics wstats; | 572 | struct iw_statistics wstats; |
| 573 | 573 | ||
| 574 | struct iw_public_data wireless_data; | ||
| 575 | |||
| 574 | struct tasklet_struct irq_tasklet; | 576 | struct tasklet_struct irq_tasklet; |
| 575 | 577 | ||
| 576 | struct workqueue_struct *workqueue; | 578 | struct workqueue_struct *workqueue; |
