diff options
author | Jussi Kivilinna <jussi.kivilinna@mbnet.fi> | 2009-07-30 12:41:42 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-08-04 16:44:16 -0400 |
commit | e5a11a822e1758b05b987e3a5041ef1029aa6cec (patch) | |
tree | 5096c1b76c151953d7161c27ff9b8376b8fd24ef /drivers/net | |
parent | 7eaab7086c3a313d76c217f98bc610c523d9bc2c (diff) |
rndis_wlan: set current packet filter to zero on stop
Set current packet filter to zero to block receiving data packets from
device.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/rndis_wlan.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c index bfb9861a0366..974f72497862 100644 --- a/drivers/net/wireless/rndis_wlan.c +++ b/drivers/net/wireless/rndis_wlan.c | |||
@@ -2530,7 +2530,8 @@ static int rndis_wlan_reset(struct usbnet *usbdev) | |||
2530 | if (retval) | 2530 | if (retval) |
2531 | devwarn(usbdev, "rndis_reset() failed: %d", retval); | 2531 | devwarn(usbdev, "rndis_reset() failed: %d", retval); |
2532 | 2532 | ||
2533 | /* rndis_reset cleared multicast list, so restore here. */ | 2533 | /* rndis_reset cleared multicast list, so restore here. |
2534 | (set_multicast_list() also turns on current packet filter) */ | ||
2534 | set_multicast_list(usbdev); | 2535 | set_multicast_list(usbdev); |
2535 | 2536 | ||
2536 | queue_delayed_work(priv->workqueue, &priv->stats_work, | 2537 | queue_delayed_work(priv->workqueue, &priv->stats_work, |
@@ -2544,6 +2545,7 @@ static int rndis_wlan_stop(struct usbnet *usbdev) | |||
2544 | { | 2545 | { |
2545 | struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev); | 2546 | struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev); |
2546 | int retval; | 2547 | int retval; |
2548 | __le32 filter; | ||
2547 | 2549 | ||
2548 | devdbg(usbdev, "rndis_wlan_stop"); | 2550 | devdbg(usbdev, "rndis_wlan_stop"); |
2549 | 2551 | ||
@@ -2560,6 +2562,12 @@ static int rndis_wlan_stop(struct usbnet *usbdev) | |||
2560 | priv->scan_request = NULL; | 2562 | priv->scan_request = NULL; |
2561 | } | 2563 | } |
2562 | 2564 | ||
2565 | /* Set current packet filter zero to block receiving data packets from | ||
2566 | device. */ | ||
2567 | filter = 0; | ||
2568 | rndis_set_oid(usbdev, OID_GEN_CURRENT_PACKET_FILTER, &filter, | ||
2569 | sizeof(filter)); | ||
2570 | |||
2563 | return retval; | 2571 | return retval; |
2564 | } | 2572 | } |
2565 | 2573 | ||