rndis_wlan: update carrier flag when link state changes

Driver wasn't updating netif_carrier on link state changes but assumed
link layer was always up.

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c
index aaeeec8..c281c0b 100644
--- a/drivers/net/wireless/rndis_wlan.c
+++ b/drivers/net/wireless/rndis_wlan.c
@@ -2215,6 +2215,8 @@
 	int ret, offset;
 
 	if (test_and_clear_bit(WORK_LINK_UP, &priv->work_pending)) {
+		netif_carrier_on(usbdev->net);
+
 		info = kzalloc(assoc_size, GFP_KERNEL);
 		if (!info)
 			goto get_bssid;
@@ -2253,6 +2255,8 @@
 	}
 
 	if (test_and_clear_bit(WORK_LINK_DOWN, &priv->work_pending)) {
+		netif_carrier_off(usbdev->net);
+
 		evt.data.flags = 0;
 		evt.data.length = 0;
 		memset(evt.ap_addr.sa_data, 0, ETH_ALEN);
@@ -2574,6 +2578,7 @@
 	/* turn radio on */
 	priv->radio_on = 1;
 	disassociate(dev, 1);
+	netif_carrier_off(dev->net);
 
 	/* because rndis_command() sleeps we need to use workqueue */
 	priv->workqueue = create_singlethread_workqueue("rndis_wlan");