From fbb3554b62361e4eea14045b7f27bdc2b9369300 Mon Sep 17 00:00:00 2001 From: Sean Wang Date: Fri, 29 Jul 2022 22:44:57 +0800 Subject: [PATCH] wifi: mt76: mt7921: add mt7921_mutex_acquire at mt7921_sta_set_decap_offload Add mt7921_mutex_acquire at mt7921_[start, stop]_ap to fix the race with the context holding dev->muxtex and the driver might access the device in low power state. Fixes: 24299fc869f7 ("mt76: mt7921: enable rx header traslation offload") Tested-by: AngeloGioacchino Del Regno Acked-by: Lorenzo Bianconi Signed-off-by: Sean Wang Signed-off-by: Felix Fietkau --- mt7921/main.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mt7921/main.c b/mt7921/main.c index 16477397..5bfa5d32 100644 --- a/mt7921/main.c +++ b/mt7921/main.c @@ -1402,6 +1402,8 @@ static void mt7921_sta_set_decap_offload(struct ieee80211_hw *hw, struct mt7921_sta *msta = (struct mt7921_sta *)sta->drv_priv; struct mt7921_dev *dev = mt7921_hw_dev(hw); + mt7921_mutex_acquire(dev); + if (enabled) set_bit(MT_WCID_FLAG_HDR_TRANS, &msta->wcid.flags); else @@ -1409,6 +1411,8 @@ static void mt7921_sta_set_decap_offload(struct ieee80211_hw *hw, mt76_connac_mcu_sta_update_hdr_trans(&dev->mt76, vif, &msta->wcid, MCU_UNI_CMD(STA_REC_UPDATE)); + + mt7921_mutex_release(dev); } #if IS_ENABLED(CONFIG_IPV6)