Toke Høiland-Jørgensen <toke@xxxxxxx> wrote: > From: Toke Høiland-Jørgensen <toke@xxxxxxxxxx> > > 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@xxxxxxxxxxxxxxx > Reported-by: Peter Seiderer <ps.report@xxxxxxx> > Fixes: 037250f0a45c ("ath9k: Properly clear TX status area before reporting to mac80211") > Signed-off-by: Toke Høiland-Jørgensen <toke@xxxxxxxxxx> > Reviewed-by: Peter Seiderer <ps.report@xxxxxxx> > Tested-by: Peter Seiderer <ps.report@xxxxxxx> Patch applied to wireless.git, thanks. 5a6b06f5927c ath9k: Fix usage of driver-private space in tx_info -- https://patchwork.kernel.org/project/linux-wireless/patch/20220404204800.2681133-1-toke@xxxxxxx/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches