if (retval)
devwarn(usbdev, "rndis_reset() failed: %d", retval);
- /* rndis_reset cleared multicast list, so restore here. */
+ /* rndis_reset cleared multicast list, so restore here.
+ (set_multicast_list() also turns on current packet filter) */
set_multicast_list(usbdev);
queue_delayed_work(priv->workqueue, &priv->stats_work,
{
struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
int retval;
+ __le32 filter;
devdbg(usbdev, "rndis_wlan_stop");
priv->scan_request = NULL;
}
+ /* Set current packet filter zero to block receiving data packets from
+ device. */
+ filter = 0;
+ rndis_set_oid(usbdev, OID_GEN_CURRENT_PACKET_FILTER, &filter,
+ sizeof(filter));
+
return retval;
}