Ping-Ke Shih <pkshih@xxxxxxxxxxx> wrote: > From: Chih-Kang Chang <gary.chang@xxxxxxxxxxx> > > In the wpa_supplicant rekey flow, it sends an EAPOL packet 4/4 through > nl80211_tx_control_port() and triggers wake_tx_queue() in the driver. > Then, it sends nl80211_new_key() to configure a new key in mac80211. > However, in wake_tx_queue(), a workqueue is used to process the tx packet, > which might cause the driver to process the EAPOL packet later than > nl80211_new_key(). As a result, the EAPOL 4/4 packet is dropped by mac80211 > due to the rekey configuration being finished. The EAPOL packets belongs to > VO packets that need high priority. Therefore, we process VO packets > directly without workqueue to ensure that packets can process immediately. > > VO is normally used by voice application that is low traffic load and low > latency, that doesn't affect user experience. > We test iperf with VO packets(iperf3 -P4 -u -b 10000M -S 0xdf) > before after > TX throughput 162M 162M > ping RTT 3.8ms 3.7ms > > Signed-off-by: Chih-Kang Chang <gary.chang@xxxxxxxxxxx> > Signed-off-by: Ping-Ke Shih <pkshih@xxxxxxxxxxx> Patch applied to wireless-next.git, thanks. 67d7f24b194e wifi: rtw88: process VO packets without workqueue to avoid PTK rekey failed -- https://patchwork.kernel.org/project/linux-wireless/patch/20230616031713.16769-1-pkshih@xxxxxxxxxxx/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches