diff options
author | Bob Copeland <me@bobcopeland.com> | 2008-10-16 11:02:06 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-10-22 18:09:32 -0400 |
commit | 8bdd5b9c6bd53add260756b6673a0545fbdbba21 (patch) | |
tree | a35a59e657422a8577103fff8a34f8b2d8f79440 /drivers/net/wireless/ath5k/base.h | |
parent | 75e3d8db531b462b875c1adb13eeb6b0be7374c0 (diff) | |
download | op-kernel-dev-8bdd5b9c6bd53add260756b6673a0545fbdbba21.zip op-kernel-dev-8bdd5b9c6bd53add260756b6673a0545fbdbba21.tar.gz |
ath5k: fix suspend-related oops on rmmod
Based on a patch by Elias Oltmanns, we call ath5k_init in resume even
if we didn't previously open the device. Besides starting up the
device unnecessarily, this also causes an oops on rmmod because
mac80211 will not invoke ath5k_stop and softirqs are left running after
the module has been unloaded. Add a new state bit, ATH_STAT_STARTED,
to indicate that we have been started up.
Reported-by: Toralf Förster <toralf.foerster@gmx.de>
Signed-off-by: Elias Oltmanns <eo@nebensachen.de>
Signed-off-by: Bob Copeland <me@bobcopeland.com>
Cc: stable@kernel.org
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath5k/base.h')
-rw-r--r-- | drivers/net/wireless/ath5k/base.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath5k/base.h b/drivers/net/wireless/ath5k/base.h index 9d0b728..06d1054 100644 --- a/drivers/net/wireless/ath5k/base.h +++ b/drivers/net/wireless/ath5k/base.h @@ -128,11 +128,12 @@ struct ath5k_softc { size_t desc_len; /* size of TX/RX descriptors */ u16 cachelsz; /* cache line size */ - DECLARE_BITMAP(status, 4); + DECLARE_BITMAP(status, 5); #define ATH_STAT_INVALID 0 /* disable hardware accesses */ #define ATH_STAT_MRRETRY 1 /* multi-rate retry support */ #define ATH_STAT_PROMISC 2 #define ATH_STAT_LEDSOFT 3 /* enable LED gpio status */ +#define ATH_STAT_STARTED 4 /* opened & irqs enabled */ unsigned int filter_flags; /* HW flags, AR5K_RX_FILTER_* */ unsigned int curmode; /* current phy mode */ |