WSL2-Linux-Kernel/drivers/net/wireless/ath/ath9k
Toke Høiland-Jørgensen 5a6b06f592 ath9k: Fix usage of driver-private space in tx_info
The ieee80211_tx_info_clear_status() helper also clears the rate counts and
the driver-private part of struct ieee80211_tx_info, so using it breaks
quite a few other things. So back out of using it, and instead define a
ath-internal helper that only clears the area between the
status_driver_data and the rates info. Combined with moving the
ath_frame_info struct to status_driver_data, this avoids clearing anything
we shouldn't be, and so we can keep the existing code for handling the rate
information.

While fixing this I also noticed that the setting of
tx_info->status.rates[tx_rateindex].count on hardware underrun errors was
always immediately overridden by the normal setting of the same fields, so
rearrange the code so that the underrun detection actually takes effect.

The new helper could be generalised to a 'memset_between()' helper, but
leave it as a driver-internal helper for now since this needs to go to
stable.

Cc: stable@vger.kernel.org
Reported-by: Peter Seiderer <ps.report@gmx.net>
Fixes: 037250f0a4 ("ath9k: Properly clear TX status area before reporting to mac80211")
Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
Reviewed-by: Peter Seiderer <ps.report@gmx.net>
Tested-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220404204800.2681133-1-toke@toke.dk
2022-04-10 15:22:21 +03:00
..
Kconfig ath9k: fix build error with LEDS_CLASS=m 2021-01-28 09:29:34 +02:00
Makefile ath9k: add loader for AR92XX (and older) pci(e) 2019-09-04 09:12:35 +03:00
ahb.c remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
ani.c ath9k: Replace HTTP links with HTTPS ones 2020-08-14 17:44:14 +03:00
ani.h
antenna.c
ar953x_initvals.h
ar955x_1p0_initvals.h
ar956x_initvals.h
ar5008_initvals.h ath9k: ar5008_initvals: Move ar5416Bank{0,1,2,3,7} to where they are used 2020-08-27 13:17:40 +03:00
ar5008_phy.c ath9k: ar5008_phy: Demote half completed function headers 2020-11-07 10:07:51 +02:00
ar9001_initvals.h ath9k: ar9001_initvals: Remove unused array 'ar5416Bank6_9100' 2020-08-27 13:17:35 +03:00
ar9002_calib.c ath9k: add calibration timeout for AR9002 2020-04-28 12:07:21 +03:00
ar9002_hw.c
ar9002_initvals.h ath9k: ar9002_initvals: Remove unused array 'ar9280PciePhy_clkreq_off_L1_9280' 2020-08-27 13:17:32 +03:00
ar9002_mac.c ath9k: fix intr_txqs setting 2021-11-19 10:07:38 +02:00
ar9002_phy.c ath9k: Use fallthrough pseudo-keyword 2020-08-14 18:04:06 +03:00
ar9002_phy.h
ar9003_2p2_initvals.h ath9k: ar9003_2p2_initvals: Remove unused const variables 2020-11-07 10:07:48 +02:00
ar9003_aic.c ath9k: use true,false for bool variable 2020-01-26 12:19:02 +02:00
ar9003_aic.h
ar9003_buffalo_initvals.h
ar9003_calib.c ath9k: use swap() to make code cleaner 2021-11-01 16:20:03 +02:00
ar9003_eeprom.c ath9k: fix OOB read ar9300_eeprom_restore_internal 2021-08-29 10:12:09 +03:00
ar9003_eeprom.h
ar9003_hw.c net: Fix misspellings of "configure" and "configuration" 2019-10-28 13:41:01 -07:00
ar9003_mac.c ath9k: ar9003_mac: read STBC indicator from rx descriptor 2021-05-30 12:04:19 +03:00
ar9003_mac.h
ar9003_mci.c
ar9003_mci.h
ar9003_paprd.c
ar9003_phy.c
ar9003_phy.h
ar9003_rtt.c
ar9003_rtt.h
ar9003_wow.c
ar9330_1p1_initvals.h ath9k: ar9330_1p1_initvals: Remove unused const variable 'ar9331_common_tx_gain_offset1_1' 2020-11-07 10:07:39 +02:00
ar9330_1p2_initvals.h
ar9340_initvals.h ath9k: ar9340_initvals: Remove unused const variable 'ar9340Modes_ub124_tx_gain_table_1p0' 2020-11-07 10:07:42 +02:00
ar9462_2p0_initvals.h
ar9462_2p1_initvals.h
ar9485_initvals.h ath9k: ar9485_initvals: Remove unused const variable 'ar9485_fast_clock_1_1_baseband_postamble' 2020-11-07 10:07:45 +02:00
ar9565_1p0_initvals.h
ar9565_1p1_initvals.h
ar9580_1p0_initvals.h ath9k: Remove set but not used variable 2020-09-29 11:29:20 +03:00
ath9k.h ath9k: use hw_random API instead of directly dumping into random.c 2022-02-21 12:22:29 +02:00
ath9k_pci_owl_loader.c ath9k: owl-loader: fetch pci init values through nvmem 2021-09-16 11:07:41 +03:00
beacon.c ath9k: Use tasklet_disable_in_atomic() 2021-03-17 16:34:02 +01:00
btcoex.c
btcoex.h
calib.c ath9k: add calibration timeout for AR9002 2020-04-28 12:07:21 +03:00
calib.h
channel.c ath9k: Use fallthrough pseudo-keyword 2020-08-14 18:04:06 +03:00
common-beacon.c
common-beacon.h
common-debug.c ath9k: remove trailing semicolon in macro definition 2020-12-07 18:13:18 +02:00
common-debug.h
common-init.c
common-init.h
common-spectral.c ath9k: make relay callbacks const 2020-12-15 22:46:18 -08:00
common-spectral.h
common.c
common.h
debug.c ath9k: add option to reset the wifi chip via debugfs 2021-10-05 17:27:31 +03:00
debug.h ath9k: add option to reset the wifi chip via debugfs 2021-10-05 17:27:31 +03:00
debug_sta.c
dfs.c
dfs.h
dfs_debug.c ath9k: remove trailing semicolon in macro definition 2020-12-07 18:13:18 +02:00
dfs_debug.h
dynack.c ath9k: work around false-positive gcc warning 2020-11-10 20:12:42 +02:00
dynack.h
eeprom.c ath9k: remove redundant status variable 2022-01-17 14:43:02 +02:00
eeprom.h
eeprom_4k.c
eeprom_9287.c
eeprom_def.c ath9k: Use fallthrough pseudo-keyword 2020-08-14 18:04:06 +03:00
gpio.c
hif_usb.c ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream 2021-12-20 18:09:25 +02:00
hif_usb.h ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb 2020-04-07 07:57:26 +03:00
htc.h ath9k_htc: fix NULL pointer dereference at ath9k_htc_tx_get_packet() 2021-12-20 18:08:58 +02:00
htc_drv_beacon.c mac80211: rename csa counters to countdown counters 2020-08-27 14:12:15 +02:00
htc_drv_debug.c
htc_drv_gpio.c
htc_drv_init.c ath9k: Fix error check in ath9k_hw_read_revisions() for PCI devices 2021-04-22 16:37:54 +03:00
htc_drv_main.c ath: Modify ath_key_delete() to not need full key entry 2020-12-17 08:51:17 +02:00
htc_drv_txrx.c ath9k_htc: fix NULL pointer dereference at ath9k_htc_tx_get_packet() 2021-12-20 18:08:58 +02:00
htc_hst.c ath9k_htc: fix uninit value bugs 2022-01-28 14:32:19 +02:00
htc_hst.h
hw-ops.h
hw.c ath9k: fix sleeping in atomic context 2021-08-29 10:12:33 +03:00
hw.h ath9k: fetch calibration data via nvmem subsystem 2021-09-16 11:07:41 +03:00
init.c ath9k: fix an IS_ERR() vs NULL check 2021-10-13 08:48:14 +03:00
link.c
mac.c
mac.h
main.c ath9k: Fix usage of driver-private space in tx_info 2022-04-10 15:22:21 +03:00
mci.c ath9k: make array voice_priority static const 2022-03-09 17:09:07 +02:00
mci.h
pci.c ath: switch from 'pci_' to 'dma_' API 2021-07-02 14:39:59 +03:00
phy.h
recv.c ath9k: Set RX filter based to allow broadcast Action frame RX 2020-05-30 17:17:20 +03:00
reg.h
reg_aic.h
reg_mci.h
reg_wow.h
rng.c ath9k: use hw_random API instead of directly dumping into random.c 2022-02-21 12:22:29 +02:00
tx99.c
wmi.c ath9k_htc: fix NULL pointer dereference at ath9k_htc_tx_get_packet() 2021-12-20 18:08:58 +02:00
wmi.h ath9k: convert tasklets to use new tasklet_setup() API 2020-08-27 13:16:18 +03:00
wow.c
xmit.c ath9k: Fix usage of driver-private space in tx_info 2022-04-10 15:22:21 +03:00