diff options
author | Pavel Roskin <proski@gnu.org> | 2010-01-30 21:37:24 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-02-01 15:40:09 -0500 |
commit | ab5132a26236e308c6d3d832a3e04fca351656d8 (patch) | |
tree | db473e3bd020a5e2f3fe02a381bb24e7b285ab5e /drivers/net/wireless/ath/ath9k/ath9k.h | |
parent | e389900ed31975f3ce091764bf394b045058dad1 (diff) |
ath9k: fix access to freed data on unload
Calling ath_bus_cleanup() after ieee80211_free_hw() resulted in access
to common->bus_ops, which is already freed as part of the device data.
Remove the cleanup field in struct ath_bus_ops, as it was never used
properly. Remove ath_bus_cleanup(). Merge cleanup functions in place
of the ath_bus_cleanup() calls. Take care not to use any device data
after ieee80211_free_hw().
Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/ath9k.h')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ath9k.h | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h index 3f8a7e773d55..0ea340fd071c 100644 --- a/drivers/net/wireless/ath/ath9k/ath9k.h +++ b/drivers/net/wireless/ath/ath9k/ath9k.h | |||
@@ -538,11 +538,6 @@ static inline void ath_read_cachesize(struct ath_common *common, int *csz) | |||
538 | common->bus_ops->read_cachesize(common, csz); | 538 | common->bus_ops->read_cachesize(common, csz); |
539 | } | 539 | } |
540 | 540 | ||
541 | static inline void ath_bus_cleanup(struct ath_common *common) | ||
542 | { | ||
543 | common->bus_ops->cleanup(common); | ||
544 | } | ||
545 | |||
546 | extern struct ieee80211_ops ath9k_ops; | 541 | extern struct ieee80211_ops ath9k_ops; |
547 | extern int modparam_nohwcrypt; | 542 | extern int modparam_nohwcrypt; |
548 | 543 | ||