2023-01-15 05:18:13

by Deren Wu

[permalink] [raw]
Subject: [PATCH] wifi: mt76: add memory barrier to SDIO queue kick

Ensure the entry has been fully updated before SDIO bus worker access
it. This patch would fix potential memory risk in both mt7663s and
mt7921s.

Fixes: 764dee47e2c1 ("mt76: sdio: move common code in mt76_sdio module")
Signed-off-by: Deren Wu <[email protected]>
---
drivers/net/wireless/mediatek/mt76/sdio.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/net/wireless/mediatek/mt76/sdio.c b/drivers/net/wireless/mediatek/mt76/sdio.c
index 228bc7d45011..419723118ded 100644
--- a/drivers/net/wireless/mediatek/mt76/sdio.c
+++ b/drivers/net/wireless/mediatek/mt76/sdio.c
@@ -562,6 +562,10 @@ mt76s_tx_queue_skb_raw(struct mt76_dev *dev, struct mt76_queue *q,

q->entry[q->head].buf_sz = len;
q->entry[q->head].skb = skb;
+
+ /* ensure the entry fully updated before bus access */
+ smp_wmb();
+
q->head = (q->head + 1) % q->ndesc;
q->queued++;

--
2.18.0


Subject: Re: [PATCH] wifi: mt76: add memory barrier to SDIO queue kick

Il 15/01/23 05:44, Deren Wu ha scritto:
> Ensure the entry has been fully updated before SDIO bus worker access
> it. This patch would fix potential memory risk in both mt7663s and
> mt7921s.
>
> Fixes: 764dee47e2c1 ("mt76: sdio: move common code in mt76_sdio module")
> Signed-off-by: Deren Wu <[email protected]>

Reviewed-by: AngeloGioacchino Del Regno <[email protected]>