| From 9f4bc8cf3fe750ed093856a5f5d41c11cc12ad22 Mon Sep 17 00:00:00 2001 |
| From: Larry Finger <Larry.Finger@lwfinger.net> |
| Date: Sat, 25 Feb 2012 18:10:20 -0600 |
| Subject: staging: r8712u: Fix regression introduced by commit a5ee652 |
| |
| From: Larry Finger <Larry.Finger@lwfinger.net> |
| |
| commit 9f4bc8cf3fe750ed093856a5f5d41c11cc12ad22 upstream. |
| |
| In commit a5ee652 "staging: r8712u: Interface-state not fully tracked", |
| the private boolean "bup" was set false when the interface was brought down, |
| as that seemed appropriate. This change has not caused any problems when |
| using NetworkManager or manual control of the device; however, when wicd |
| control is used, there is a locking problem in wpa_supplicant, as shown in |
| https://bugzilla.kernel.org/show_bug.cgi?id=42818. |
| |
| This fix reverts the only code change in commit a5ee652. My |
| analysis is that "bup" is badly named. In its present form, it |
| seems to indicate the up/down state of the device, but its usage |
| is more consistent with an initialized/uninitialized state. That |
| problem will be addressed in a later patch. |
| |
| Note: Commit 8c213fa, which introdued asynchronous firmware loading |
| for this driver, exposed this bug to a greater extent. That bug |
| is addressed in the next patch in this series. |
| |
| This bug is also responsible for the bug in |
| https://bugzilla.kernel.org/show_bug.cgi?id=42815. and this bug is |
| also part of the problems discussed at https://bugs.archlinux.org/task/27996#comment89950. |
| |
| Tested-by: Alberto Lago Ballesteros <saniukeokusainaya@gmail.com> |
| Tested-by: Adrian <agib@gmx.de> |
| Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/staging/rtl8712/os_intfs.c | 2 -- |
| 1 file changed, 2 deletions(-) |
| |
| --- a/drivers/staging/rtl8712/os_intfs.c |
| +++ b/drivers/staging/rtl8712/os_intfs.c |
| @@ -476,8 +476,6 @@ static int netdev_close(struct net_devic |
| r8712_free_assoc_resources(padapter); |
| /*s2-4.*/ |
| r8712_free_network_queue(padapter); |
| - /* The interface is no longer Up: */ |
| - padapter->bup = false; |
| release_firmware(padapter->fw); |
| /* never exit with a firmware callback pending */ |
| wait_for_completion(&padapter->rtl8712_fw_ready); |