diff options
author | Stanislaw Gruszka <sgruszka@redhat.com> | 2014-02-03 14:45:51 +0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-02-05 00:30:07 +0400 |
commit | a243de48558397f438e299178cac29f6da8fc0ce (patch) | |
tree | 7a86e26b558acab2ec7ebc1bd30edd526034e46e /drivers/net/wireless/ath/ath9k/htc.h | |
parent | 4fcfc7443d072582b5047b8b391d711590e5645c (diff) | |
download | linux-a243de48558397f438e299178cac29f6da8fc0ce.tar.xz |
ath9k_htc: avoid scheduling while atomic on sta_rc_update
mac80211 ->sta_rc_update() callback must be atomic. Since we have to
take mutex and do other operations that can sleep when sending fimrware
commands to device, the only option to satisfy atomicity requirement of
->sta_rc_update(), that I can see, is introduce work_struct and defer
uploading new rates to that work.
Tested-by: Oleksij Rempel <linux@rempel-privat.de>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/htc.h')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/htc.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/htc.h b/drivers/net/wireless/ath/ath9k/htc.h index 58da3468d1f0..99a203174f45 100644 --- a/drivers/net/wireless/ath/ath9k/htc.h +++ b/drivers/net/wireless/ath/ath9k/htc.h @@ -262,6 +262,8 @@ enum tid_aggr_state { struct ath9k_htc_sta { u8 index; enum tid_aggr_state tid_state[ATH9K_HTC_MAX_TID]; + struct work_struct rc_update_work; + struct ath9k_htc_priv *htc_priv; }; #define ATH9K_HTC_RXBUF 256 |