Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx
[pandora-kernel.git] / drivers / net / wireless / rndis_wlan.c
index 2d28908..4bd61ee 100644 (file)
@@ -2572,14 +2572,18 @@ static void rndis_wlan_do_link_up_work(struct usbnet *usbdev)
 
 static void rndis_wlan_do_link_down_work(struct usbnet *usbdev)
 {
-       union iwreq_data evt;
+       struct rndis_wlan_private *priv = get_rndis_wlan_priv(usbdev);
 
-       netif_carrier_off(usbdev->net);
+       if (priv->connected) {
+               priv->connected = false;
+               memset(priv->bssid, 0, ETH_ALEN);
+
+               deauthenticate(usbdev);
 
-       evt.data.flags = 0;
-       evt.data.length = 0;
-       memset(evt.ap_addr.sa_data, 0, ETH_ALEN);
-       wireless_send_event(usbdev->net, SIOCGIWAP, &evt, NULL);
+               cfg80211_disconnected(usbdev->net, 0, NULL, 0, GFP_KERNEL);
+       }
+
+       netif_carrier_off(usbdev->net);
 }
 
 static void rndis_wlan_worker(struct work_struct *work)