Re: [PATCH] rtl8xxxu: Fix the handling of TX A-MPDU aggregation
From: Kalle Valo <hidden>
Date: 2021-08-01 10:42:33
Also in:
lkml, netdev
chris.chiu@canonical.com writes:
quoted hunk
From: Chris Chiu <redacted> The TX A-MPDU aggregation is not handled in the driver since the ieee80211_start_tx_ba_session has never been started properly. Start and stop the TX BA session by tracking the TX aggregation status of each TID. Fix the ampdu_action and the tx descriptor accordingly with the given TID. Signed-off-by: Chris Chiu <redacted> --- .../net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 2 ++ .../wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 33 ++++++++++++++----- 2 files changed, 26 insertions(+), 9 deletions(-)diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h index d1a566cc0c9e..3f7ff84f2056 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h@@ -1383,6 +1383,8 @@ struct rtl8xxxu_priv { u8 no_pape:1; u8 int_buf[USB_INTR_CONTENT_LENGTH]; u8 rssi_level; + bool tx_aggr_started[IEEE80211_NUM_TIDS];
Why do you use bool of arrays? That looks racy to me. Wouldn't DECLARE_BITMAP() be safer, like tid_bitmap uses?
+ DECLARE_BITMAP(tid_bitmap, IEEE80211_NUM_TIDS);
I would rename this to a more descriptive name, like tid_tx_operational. -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches