OpenCloudOS-Kernel/drivers/net/wireless/ath/ath9k
Mohammed Shafi Shajakhan 4fc4fbd1d9 ath9k: Fix incorrect access of rate flags in RC
The index variable to access the rate flags should be obtained from the
inner loop counter which corresponds to the rate table structure.This
fixes the invalid rate selection i.e when the supported basic rate is
invalid on a particular band and also the following warning message.
Thanks to Raj for finding this out.

Call Trace:

 [<ffffffff8104ee4a>] warn_slowpath_common+0x7a/0xb0

 [<ffffffff8104ee95>] warn_slowpath_null+0x15/0x20

 [<ffffffffa0583c45>] ath_get_rate+0x595/0x5b0 [ath9k]

 [<ffffffff811a0636>] ? cpumask_next_and+0x36/0x50

 [<ffffffffa0405186>] rate_control_get_rate+0x86/0x160 [mac80211]

 [<ffffffffa040dfac>] invoke_tx_handlers+0x81c/0x12d0 [mac80211]

 [<ffffffffa040eae9>] ieee80211_tx+0x89/0x2b0 [mac80211]

 [<ffffffff812891bc>] ? pskb_expand_head+0x1cc/0x1f0

 [<ffffffffa040edc5>] ieee80211_xmit+0xb5/0x1c0 [mac80211]

 [<ffffffffa041026f>] ieee80211_tx_skb+0x4f/0x60 [mac80211]

 [<ffffffffa03fe016>] ieee80211_send_nullfunc+0x46/0x60 [mac80211]

 [<ffffffffa03f91d7>] ieee80211_offchannel_stop_station+0x107/0x150
[mac80211]

 [<ffffffff812891bc>] ? pskb_expand_head+0x1cc/0x1f0

 [<ffffffffa040edc5>] ieee80211_xmit+0xb5/0x1c0 [mac80211]

 [<ffffffffa041026f>] ieee80211_tx_skb+0x4f/0x60 [mac80211]

 [<ffffffffa03fe016>] ieee80211_send_nullfunc+0x46/0x60 [mac80211]

 [<ffffffffa03f91d7>] ieee80211_offchannel_stop_station+0x107/0x150
[mac80211]

 [<ffffffffa03f8896>] ieee80211_scan_work+0x146/0x600 [mac80211]

 [<ffffffff8133a375>] ? schedule+0x2f5/0x8e0

 [<ffffffffa03f8750>] ? ieee80211_scan_work+0x0/0x600 [mac80211]

 [<ffffffff81064fcf>] process_one_work+0x10f/0x380

 [<ffffffff81066bc2>] worker_thread+0x162/0x340

 [<ffffffff81066a60>] ? worker_thread+0x0/0x340

Cc: stable@kernel.org
Signed-off-by: Mohammed Shafi Shajakhan <mshajakhan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-10-29 14:33:25 -04:00
..
Kconfig ath9k: make the driver specific rate control module optional 2010-09-21 11:05:35 -04:00
Makefile ath9k: make the driver specific rate control module optional 2010-09-21 11:05:35 -04:00
ahb.c drivers/net/wireless: Use wiphy_<level> 2010-07-27 15:14:13 -04:00
ani.c ath9k_hw: fix PHY counter overflow handling in ANI v1 2010-10-15 15:48:44 -04:00
ani.h ath9k_hw: move the cycle counter tracking to ath 2010-10-11 15:04:20 -04:00
ar5008_initvals.h ath9k_hw: reformat the ar5008, ar9001 and ar9002 initvals to match ar9003 2010-07-02 13:44:34 -04:00
ar5008_phy.c ath9k_hw: clean up ANI state handling 2010-10-06 16:30:39 -04:00
ar9001_initvals.h ath9k_hw: sync initvals for ar9001 and ar9002 with Atheros 2010-07-02 13:44:35 -04:00
ar9002_calib.c ath9k_hw: clean up register write buffering 2010-10-06 16:30:38 -04:00
ar9002_hw.c ath9k_hw: merge ath9k_hw_ani_monitor_old and ath9k_hw_ani_monitor_new 2010-10-06 16:30:39 -04:00
ar9002_initvals.h ath9k_hw: remove initvals for hardware which was never sold 2010-07-14 13:52:46 -04:00
ar9002_mac.c ath9k_hw: report the TID in the tx status on AR5008-AR9002 2010-07-12 16:05:38 -04:00
ar9002_phy.c ath9k_hw: clean up register write buffering 2010-10-06 16:30:38 -04:00
ar9002_phy.h ath9k_hw: Add functions to get/set antenna diversity configuration 2010-09-07 13:54:33 -04:00
ar9003_2p2_initvals.h ath9k_hw: Fix TX carrier leakage for IEEE compliance on AR9003 2.2 2010-10-25 14:43:14 -04:00
ar9003_calib.c ath9k_hw: clean up calibration flags 2010-10-06 16:26:01 -04:00
ar9003_eeprom.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-09-24 15:52:34 -04:00
ar9003_eeprom.h ath9k_hw: add support for parsing PA predistortion related EEPROM fields 2010-06-14 15:39:32 -04:00
ar9003_hw.c ath9k_hw: remove AR9003 2.0 support 2010-10-15 15:57:39 -04:00
ar9003_mac.c ath9k_hw: handle rx key miss 2010-09-14 16:14:27 -04:00
ar9003_mac.h ath9k_hw: report the TID in the tx status on AR5008-AR9002 2010-07-12 16:05:38 -04:00
ar9003_paprd.c ath9k_hw: Fix divide by zero cases in paprd. 2010-10-25 14:43:14 -04:00
ar9003_phy.c ath9k_hw: move the cycle counter tracking to ath 2010-10-11 15:04:20 -04:00
ar9003_phy.h ath9k_hw: add register definitions related to PA predistortion 2010-06-14 15:39:32 -04:00
ath9k.h ath9k: rename rxflushlock to pcu_lock 2010-10-27 15:41:15 -04:00
beacon.c ath9k: resume aggregation immediately after a hardware reset 2010-10-25 14:45:56 -04:00
btcoex.c ath9k_htc: Add support for bluetooth coexistence. 2010-08-24 16:32:05 -04:00
btcoex.h ath9k: Fix wifi disconnection when collocated bt scan is active 2010-01-22 16:11:32 -05:00
calib.c ath9k_hw: clean up register write buffering 2010-10-06 16:30:38 -04:00
calib.h ath9k_hw: clean up calibration flags 2010-10-06 16:26:01 -04:00
common.c ath9k: Use common ath key management functions 2010-09-16 15:22:10 -04:00
common.h ath9k: Use common ath key management functions 2010-09-16 15:22:10 -04:00
debug.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-10-23 11:47:02 -07:00
debug.h ath9k: make rate control debugfs stats per station 2010-10-15 15:48:44 -04:00
eeprom.c ath9k_hw: Cleanup TX power calculation for AR9287 2010-06-03 14:10:46 -04:00
eeprom.h ath9k_hw: simplify revision checks for AR9287 2010-09-27 15:57:42 -04:00
eeprom_4k.c ath9k_hw: clean up register write buffering 2010-10-06 16:30:38 -04:00
eeprom_9287.c ath9k_hw: simplify revision checks for AR9280 2010-09-27 15:57:39 -04:00
eeprom_def.c ath9k_hw: simplify revision checks for AR9280 2010-09-27 15:57:39 -04:00
gpio.c ath9k_common: Move bt_stomp to common for sharing with ath9k_htc. 2010-08-24 16:32:05 -04:00
hif_usb.c ath9k_htc: Set proper firmware offset for Netgear WNDA3200 2010-10-27 15:46:50 -04:00
hif_usb.h ath9k_htc: Add support for AR7010 2010-06-04 16:00:39 -04:00
htc.h ath9k_htc: Add support for bluetooth coexistence. 2010-08-24 16:32:05 -04:00
htc_drv_beacon.c ath9k_htc: Fix beacon distribution in IBSS mode 2010-09-24 15:54:32 -04:00
htc_drv_gpio.c ath9k_htc: Add support for bluetooth coexistence. 2010-08-24 16:32:05 -04:00
htc_drv_init.c ath9k_hw: remove enum wireless_mode and its users 2010-10-15 15:48:45 -04:00
htc_drv_main.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-10-23 11:47:02 -07:00
htc_drv_txrx.c ath9k_htc: set probe request rx filter 2010-10-15 15:57:33 -04:00
htc_hst.c ath9k_htc: Add support for bluetooth coexistence. 2010-08-24 16:32:05 -04:00
htc_hst.h ath9k_htc: Add support for bluetooth coexistence. 2010-08-24 16:32:05 -04:00
hw-ops.h ath9k_hw: merge ath9k_hw_ani_monitor_old and ath9k_hw_ani_monitor_new 2010-10-06 16:30:39 -04:00
hw.c ath9k_hw: remove enum wireless_mode and its users 2010-10-15 15:48:45 -04:00
hw.h ath9k_hw: remove enum wireless_mode and its users 2010-10-15 15:48:45 -04:00
init.c ath9k: Properly initialize ath_common->cc_lock. 2010-10-25 14:43:13 -04:00
mac.c ath9k_hw: Fix hw reset failure with HTC driver 2010-10-07 14:41:28 -04:00
mac.h ath9k: Use common ath key management functions 2010-09-16 15:22:10 -04:00
main.c ath9k: lock reset and PCU start/stopping 2010-10-27 15:42:58 -04:00
pci.c drivers/net/wireless: Use wiphy_<level> 2010-07-27 15:14:13 -04:00
phy.h ath9k: Use common ath key management functions 2010-09-16 15:22:10 -04:00
rc.c ath9k: Fix incorrect access of rate flags in RC 2010-10-29 14:33:25 -04:00
rc.h ath9k: make rate control debugfs stats per station 2010-10-15 15:48:44 -04:00
recv.c ath9k: lock reset and PCU start/stopping 2010-10-27 15:42:58 -04:00
reg.h ath9k_hw: remove AR9003 2.0 support 2010-10-15 15:57:39 -04:00
virtual.c ath9k: fix BSSID mask calculation 2010-09-14 16:14:26 -04:00
wmi.c ath9k_htc: Fix memory leak on WMI event handler 2010-09-14 16:14:26 -04:00
wmi.h ath9k_htc: Fix memory leak on WMI event handler 2010-09-14 16:14:26 -04:00
xmit.c ath9k: fix tx aggregation flush on AR9003 2010-10-27 15:46:50 -04:00