diff options
author | Stanislaw Gruszka <sgruszka@redhat.com> | 2014-02-03 11:45:51 +0100 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-02-04 15:30:07 -0500 |
commit | a243de48558397f438e299178cac29f6da8fc0ce (patch) | |
tree | 7a86e26b558acab2ec7ebc1bd30edd526034e46e /drivers/net/wireless/ath/ath9k/htc.h | |
parent | 4fcfc7443d072582b5047b8b391d711590e5645c (diff) | |
download | op-kernel-dev-a243de48558397f438e299178cac29f6da8fc0ce.zip op-kernel-dev-a243de48558397f438e299178cac29f6da8fc0ce.tar.gz |
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 58da346..99a2031 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 |