UPSTREAM: wifi: mt76: mt7921s: fix workqueue problem causes STA association fail
The ieee80211_queue_work function queues work into the mac80211 local->workqueue, which is widely used for mac80211 internal work processes. In the mt76 driver, both the mt76-sido-status and mt76-sdio-net threads enqueue workers to the workqueue with this function. However, in some cases, when two workers are enqueued to the workqueue almost simultaneously, the second worker may not be scheduled immediately and may get stuck for a while. This can cause timing issues. To avoid these timing conflicts caused by worker scheduling, replace the worker with an independent thread. BUG=b:178754244, b:188614537 TEST=build on cherry Change-Id: I2deb7fa1939969a5288434ba91e2302b2c18c15d Signed-off-by:Wang Zhao <wang.zhao@mediatek.com> Signed-off-by:
Deren Wu <deren.wu@mediatek.com> Signed-off-by:
Felix Fietkau <nbd@nbd.name> Signed-off-by:
Linux Patches Robot <linux-patches-robot@chromeos-missing-patches.google.com.iam.gserviceaccount.com>
parent
c0b1df2a
No related branches found
No related tags found
Showing
- drivers/net/wireless/mediatek/mt76/mt76.h 1 addition, 2 deletionsdrivers/net/wireless/mediatek/mt76/mt76.h
- drivers/net/wireless/mediatek/mt76/mt7615/sdio.c 1 addition, 1 deletiondrivers/net/wireless/mediatek/mt76/mt7615/sdio.c
- drivers/net/wireless/mediatek/mt76/mt7921/sdio.c 3 additions, 1 deletiondrivers/net/wireless/mediatek/mt76/mt7921/sdio.c
- drivers/net/wireless/mediatek/mt76/mt7921/sdio_mac.c 2 additions, 1 deletiondrivers/net/wireless/mediatek/mt76/mt7921/sdio_mac.c
- drivers/net/wireless/mediatek/mt76/sdio.c 11 additions, 7 deletionsdrivers/net/wireless/mediatek/mt76/sdio.c
-
mentioned in commit clea-os/layers/seco/meta-seco-mtk@af6081dd
-
mentioned in merge request clea-os/layers/seco/meta-seco-mtk!23 (closed)
-
mentioned in commit clea-os/seco-manifest@462cfd82
Please register or sign in to comment