staging: r8712u: Interface-state not fully tracked.
authorAli Bahar <ali@internetdog.org>
Tue, 12 Jul 2011 15:10:56 +0000 (23:10 +0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 23 Aug 2011 19:24:32 +0000 (12:24 -0700)
padapter->bup is True when the interface has been
brought Up. But it was not being reset when the
interface is taken Down.
This has not caused a known problem, as other
state variables may be compensating for it. Never
the less, it is now properly tracked.

Signed-off-by: Ali Bahar <ali@internetDog.org>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/rtl8712/os_intfs.c

index 3f38e8eca3f1fbdfdb15e1d3a6f755ff8378098f..6697941e23213f2fb68f160aa52df5c57d8473ed 100644 (file)
@@ -375,6 +375,12 @@ static void enable_video_mode(struct _adapter *padapter, int cbw40_value)
        r8712_fw_cmd(padapter, intcmd);
 }
 
+/**
+ *
+ * This function intends to handle the activation of an interface
+ * i.e. when it is brought Up/Active from a Down state.
+ *
+ */
 static int netdev_open(struct net_device *pnetdev)
 {
        struct _adapter *padapter = (struct _adapter *)_netdev_priv(pnetdev);
@@ -434,6 +440,12 @@ netdev_open_error:
        return -1;
 }
 
+/**
+ *
+ * This function intends to handle the shutdown of an interface
+ * i.e. when it is brought Down from an Up/Active state.
+ *
+ */
 static int netdev_close(struct net_device *pnetdev)
 {
        struct _adapter *padapter = (struct _adapter *) _netdev_priv(pnetdev);
@@ -458,6 +470,8 @@ static int netdev_close(struct net_device *pnetdev)
        r8712_free_network_queue(padapter);
        /*Stop driver mlme relation timer*/
        stop_drv_timers(padapter);
+       /* The interface is no longer Up: */
+       padapter->bup = false;
        return 0;
 }