From 742c36b2e527f84784a9f35007a560d8e0d76738 Mon Sep 17 00:00:00 2001 From: Lorenzo Bianconi Date: Sat, 12 Dec 2020 18:24:31 +0100 Subject: [PATCH] mt76: mt7915: run mt7915_configure_filter holding mt76 mutex In order to avoid races, run mt7915_configure_filter routine holding mt76 mutex Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau --- mt7915/main.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mt7915/main.c b/mt7915/main.c index 0ab0fff9..8e0369b7 100644 --- a/mt7915/main.c +++ b/mt7915/main.c @@ -429,7 +429,6 @@ static void mt7915_configure_filter(struct ieee80211_hw *hw, struct mt7915_dev *dev = mt7915_hw_dev(hw); struct mt7915_phy *phy = mt7915_hw_phy(hw); bool band = phy != &dev->phy; - u32 ctl_flags = MT_WF_RFCR1_DROP_ACK | MT_WF_RFCR1_DROP_BF_POLL | MT_WF_RFCR1_DROP_BA | @@ -443,6 +442,8 @@ static void mt7915_configure_filter(struct ieee80211_hw *hw, phy->rxfilter |= !(flags & FIF_##_flag) * (_hw); \ } while (0) + mutex_lock(&dev->mt76.mutex); + phy->rxfilter &= ~(MT_WF_RFCR_DROP_OTHER_BSS | MT_WF_RFCR_DROP_OTHER_BEACON | MT_WF_RFCR_DROP_FRAME_REPORT | @@ -473,6 +474,8 @@ static void mt7915_configure_filter(struct ieee80211_hw *hw, mt76_clear(dev, MT_WF_RFCR1(band), ctl_flags); else mt76_set(dev, MT_WF_RFCR1(band), ctl_flags); + + mutex_unlock(&dev->mt76.mutex); } static void mt7915_bss_info_changed(struct ieee80211_hw *hw,