diff options
author | Felix Fietkau <nbd@nbd.name> | 2018-11-13 11:33:46 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2018-11-30 12:29:35 +0100 |
commit | 723b90dc7d39e5f867cefc6a75468f9425fc9855 (patch) | |
tree | 315c37890add8c124fa429647f2a7d2ed4072262 /drivers/net/wireless/mediatek/mt76/mt76x02_util.c | |
parent | c2a1a5e13684cafb866f15af2394119f62c423a9 (diff) |
mt76: add mt76_sta_remove helper
This allows station removal code to be used by mt7603 later
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'drivers/net/wireless/mediatek/mt76/mt76x02_util.c')
-rw-r--r-- | drivers/net/wireless/mediatek/mt76/mt76x02_util.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c index 1a51193d5d59..0ea7ab9cf0c6 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76x02_util.c +++ b/drivers/net/wireless/mediatek/mt76/mt76x02_util.c @@ -212,19 +212,13 @@ int mt76x02_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta) { struct mt76x02_dev *dev = hw->priv; - struct mt76x02_sta *msta = (struct mt76x02_sta *)sta->drv_priv; - int idx = msta->wcid.idx; - int i; + struct mt76_wcid *wcid = (struct mt76_wcid *)sta->drv_priv; + int idx = wcid->idx; - rcu_assign_pointer(dev->mt76.wcid[idx], NULL); - synchronize_rcu(); + mt76_sta_remove(&dev->mt76, vif, sta); mutex_lock(&dev->mt76.mutex); - mt76_tx_status_check(&dev->mt76, &msta->wcid, true); - for (i = 0; i < ARRAY_SIZE(sta->txq); i++) - mt76_txq_remove(&dev->mt76, sta->txq[i]); mt76x02_mac_wcid_set_drop(dev, idx, true); - mt76_wcid_free(dev->mt76.wcid_mask, idx); mt76x02_mac_wcid_setup(dev, idx, 0, NULL); mutex_unlock(&dev->mt76.mutex); |