[PATCH] ar6000: do not NULLify arHtcTarget in ar6000_close
Paul Fertser
fercerpav at gmail.com
Wed Aug 26 13:41:42 CEST 2009
Trying to protect us from races commit
9c4451ff31b937a478f3d3eabef30b71cbe12b12 (AR6000: move low-level cleanup
from ar6000_destroy to ar6000_close) introduced another race: if
ar6000_close was called before "removing" the device, it'd leave no
chance to deregister eth0 as ar6000_unavail_ev was never called and the
interface stayed until "general cleanup" on module unloading happened.
This in turn had plenty of ill-effects, including oopses.
The proposed workaround was tested numerous times with constant
binding/unbinding, using wpa_supplicant, module reloading and
suspend/resume (confirmed wpa_supplicant is automatically reassociating
after resume). No rfkill tests were done since i consider that useless
taking the current state of driver into account.
Signed-off-by: Paul Fertser <fercerpav at gmail.com>
---
drivers/ar6000/ar6000/ar6000_drv.c | 2 --
1 files changed, 0 insertions(+), 2 deletions(-)
diff --git a/drivers/ar6000/ar6000/ar6000_drv.c b/drivers/ar6000/ar6000/ar6000_drv.c
index b790670..a3b5f82 100644
--- a/drivers/ar6000/ar6000/ar6000_drv.c
+++ b/drivers/ar6000/ar6000/ar6000_drv.c
@@ -1145,8 +1145,6 @@ ar6000_close(struct net_device *dev)
/* set the instance to NULL so we do not get called back on remove incase we
* we're explicity destroyed by module unload */
- HTCSetInstance(ar->arHtcTarget, NULL);
-
if (resetok) {
/* try to reset the device if we can
* The driver may have been configure NOT to reset the target during
--
1.6.0.6
More information about the openmoko-kernel
mailing list