Commit 90238e4c authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Felix Fietkau

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: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 5c47a538
...@@ -427,7 +427,6 @@ static void mt7915_configure_filter(struct ieee80211_hw *hw, ...@@ -427,7 +427,6 @@ static void mt7915_configure_filter(struct ieee80211_hw *hw,
struct mt7915_dev *dev = mt7915_hw_dev(hw); struct mt7915_dev *dev = mt7915_hw_dev(hw);
struct mt7915_phy *phy = mt7915_hw_phy(hw); struct mt7915_phy *phy = mt7915_hw_phy(hw);
bool band = phy != &dev->phy; bool band = phy != &dev->phy;
u32 ctl_flags = MT_WF_RFCR1_DROP_ACK | u32 ctl_flags = MT_WF_RFCR1_DROP_ACK |
MT_WF_RFCR1_DROP_BF_POLL | MT_WF_RFCR1_DROP_BF_POLL |
MT_WF_RFCR1_DROP_BA | MT_WF_RFCR1_DROP_BA |
...@@ -441,6 +440,8 @@ static void mt7915_configure_filter(struct ieee80211_hw *hw, ...@@ -441,6 +440,8 @@ static void mt7915_configure_filter(struct ieee80211_hw *hw,
phy->rxfilter |= !(flags & FIF_##_flag) * (_hw); \ phy->rxfilter |= !(flags & FIF_##_flag) * (_hw); \
} while (0) } while (0)
mutex_lock(&dev->mt76.mutex);
phy->rxfilter &= ~(MT_WF_RFCR_DROP_OTHER_BSS | phy->rxfilter &= ~(MT_WF_RFCR_DROP_OTHER_BSS |
MT_WF_RFCR_DROP_OTHER_BEACON | MT_WF_RFCR_DROP_OTHER_BEACON |
MT_WF_RFCR_DROP_FRAME_REPORT | MT_WF_RFCR_DROP_FRAME_REPORT |
...@@ -471,6 +472,8 @@ static void mt7915_configure_filter(struct ieee80211_hw *hw, ...@@ -471,6 +472,8 @@ static void mt7915_configure_filter(struct ieee80211_hw *hw,
mt76_clear(dev, MT_WF_RFCR1(band), ctl_flags); mt76_clear(dev, MT_WF_RFCR1(band), ctl_flags);
else else
mt76_set(dev, MT_WF_RFCR1(band), ctl_flags); mt76_set(dev, MT_WF_RFCR1(band), ctl_flags);
mutex_unlock(&dev->mt76.mutex);
} }
static void mt7915_bss_info_changed(struct ieee80211_hw *hw, static void mt7915_bss_info_changed(struct ieee80211_hw *hw,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment