]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: mt76: initialize more wcid fields mt76_wcid_init
authorFelix Fietkau <nbd@nbd.name>
Thu, 2 Jan 2025 16:34:50 +0000 (17:34 +0100)
committerFelix Fietkau <nbd@nbd.name>
Tue, 14 Jan 2025 12:34:37 +0000 (13:34 +0100)
Reduces code duplication and ensures that the phy index is always set.

Link: https://patch.msgid.link/20250102163508.52945-6-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mac80211.c
drivers/net/wireless/mediatek/mt76/mt76.h
drivers/net/wireless/mediatek/mt76/mt7603/main.c
drivers/net/wireless/mediatek/mt76/mt7615/main.c
drivers/net/wireless/mediatek/mt76/mt76x02_util.c
drivers/net/wireless/mediatek/mt76/mt7915/main.c
drivers/net/wireless/mediatek/mt76/mt7921/main.c
drivers/net/wireless/mediatek/mt76/mt7925/main.c
drivers/net/wireless/mediatek/mt76/mt7996/main.c

index 5a77f94b7f8215f42ed938117f6fd0a668e61b11..8863d60dbd9f34266f65f044c8d02df0be2ae270 100644 (file)
@@ -742,7 +742,7 @@ int mt76_register_device(struct mt76_dev *dev, bool vht,
        int ret;
 
        dev_set_drvdata(dev->dev, dev);
-       mt76_wcid_init(&dev->global_wcid);
+       mt76_wcid_init(&dev->global_wcid, phy->band_idx);
        ret = mt76_phy_init(phy, hw);
        if (ret)
                return ret;
@@ -1494,11 +1494,10 @@ mt76_sta_add(struct mt76_phy *phy, struct ieee80211_vif *vif,
        ewma_signal_init(&wcid->rssi);
        if (phy->band_idx == MT_BAND1)
                mt76_wcid_mask_set(dev->wcid_phy_mask, wcid->idx);
-       wcid->phy_idx = phy->band_idx;
        rcu_assign_pointer(dev->wcid[wcid->idx], wcid);
        phy->num_sta++;
 
-       mt76_wcid_init(wcid);
+       mt76_wcid_init(wcid, phy->band_idx);
 out:
        mutex_unlock(&dev->mutex);
 
@@ -1588,14 +1587,19 @@ void mt76_sta_pre_rcu_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 }
 EXPORT_SYMBOL_GPL(mt76_sta_pre_rcu_remove);
 
-void mt76_wcid_init(struct mt76_wcid *wcid)
+void mt76_wcid_init(struct mt76_wcid *wcid, u8 band_idx)
 {
+       wcid->hw_key_idx = -1;
+       wcid->phy_idx = band_idx;
+
        INIT_LIST_HEAD(&wcid->tx_list);
        skb_queue_head_init(&wcid->tx_pending);
        skb_queue_head_init(&wcid->tx_offchannel);
 
        INIT_LIST_HEAD(&wcid->list);
        idr_init(&wcid->pktid);
+
+       INIT_LIST_HEAD(&wcid->poll_list);
 }
 EXPORT_SYMBOL_GPL(mt76_wcid_init);
 
index 669cbd63f403d800e07f21d7d32efdd982fe6447..a9537131a0741cf6a543121b9dc0610dc0809a19 100644 (file)
@@ -1764,7 +1764,7 @@ mt76_token_put(struct mt76_dev *dev, int token)
        return txwi;
 }
 
-void mt76_wcid_init(struct mt76_wcid *wcid);
+void mt76_wcid_init(struct mt76_wcid *wcid, u8 band_idx);
 void mt76_wcid_cleanup(struct mt76_dev *dev, struct mt76_wcid *wcid);
 void mt76_wcid_add_poll(struct mt76_dev *dev, struct mt76_wcid *wcid);
 
index 574f74ad325da72affd582b3f9b1eb4a04a08441..3e8b1ec761691c9410aa43e7b7ee0e09b799711d 100644 (file)
@@ -66,11 +66,9 @@ mt7603_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
 
        idx = MT7603_WTBL_RESERVED - 1 - mvif->idx;
        dev->mt76.vif_mask |= BIT_ULL(mvif->idx);
-       INIT_LIST_HEAD(&mvif->sta.wcid.poll_list);
        mvif->sta.wcid.idx = idx;
-       mvif->sta.wcid.hw_key_idx = -1;
        mvif->sta.vif = mvif;
-       mt76_wcid_init(&mvif->sta.wcid);
+       mt76_wcid_init(&mvif->sta.wcid, 0);
 
        eth_broadcast_addr(bc_addr);
        mt7603_wtbl_init(dev, idx, mvif->idx, bc_addr);
index e883cf4e10950b371b8c370a540b1de62fe414a5..7acf3f4ad3c9f55e13b3e68eb845f931fc3d8c61 100644 (file)
@@ -225,9 +225,7 @@ static int mt7615_add_interface(struct ieee80211_hw *hw,
 
        INIT_LIST_HEAD(&mvif->sta.wcid.poll_list);
        mvif->sta.wcid.idx = idx;
-       mvif->sta.wcid.phy_idx = mvif->mt76.band_idx;
-       mvif->sta.wcid.hw_key_idx = -1;
-       mt76_wcid_init(&mvif->sta.wcid);
+       mt76_wcid_init(&mvif->sta.wcid, mvif->mt76.band_idx);
 
        mt7615_mac_wtbl_update(dev, idx,
                               MT_WTBL_UPDATE_ADM_COUNT_CLEAR);
index 8020446be37bd99c15b9410b697060a304ef18af..4fb30589fa7a098ff0145282329c6fc4d37f0297 100644 (file)
@@ -287,8 +287,7 @@ mt76x02_vif_init(struct mt76x02_dev *dev, struct ieee80211_vif *vif,
 
        mvif->idx = idx;
        mvif->group_wcid.idx = MT_VIF_WCID(idx);
-       mvif->group_wcid.hw_key_idx = -1;
-       mt76_wcid_init(&mvif->group_wcid);
+       mt76_wcid_init(&mvif->group_wcid, 0);
 
        mtxq = (struct mt76_txq *)vif->txq->drv_priv;
        rcu_assign_pointer(dev->mt76.wcid[MT_VIF_WCID(idx)], &mvif->group_wcid);
index 565d22019aac043a708dbd1a25415fd8a27862bf..3aa31c5cefa6a57cced8d5ed34b9fcc8cd02d401 100644 (file)
@@ -253,12 +253,9 @@ static int mt7915_add_interface(struct ieee80211_hw *hw,
        }
 
        INIT_LIST_HEAD(&mvif->sta.rc_list);
-       INIT_LIST_HEAD(&mvif->sta.wcid.poll_list);
        mvif->sta.wcid.idx = idx;
-       mvif->sta.wcid.phy_idx = ext_phy;
-       mvif->sta.wcid.hw_key_idx = -1;
        mvif->sta.wcid.tx_info |= MT_WCID_TX_INFO_SET;
-       mt76_wcid_init(&mvif->sta.wcid);
+       mt76_wcid_init(&mvif->sta.wcid, phy->mt76->band_idx);
 
        mt7915_mac_wtbl_update(dev, idx,
                               MT_WTBL_UPDATE_ADM_COUNT_CLEAR);
index 8158357b86befda8c8e9ec21cc2b1287417180b3..fccefda3bdb5b7928dda35c8b16674c83de389ca 100644 (file)
@@ -325,10 +325,8 @@ mt7921_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
 
        INIT_LIST_HEAD(&mvif->sta.deflink.wcid.poll_list);
        mvif->sta.deflink.wcid.idx = idx;
-       mvif->sta.deflink.wcid.phy_idx = mvif->bss_conf.mt76.band_idx;
-       mvif->sta.deflink.wcid.hw_key_idx = -1;
        mvif->sta.deflink.wcid.tx_info |= MT_WCID_TX_INFO_SET;
-       mt76_wcid_init(&mvif->sta.deflink.wcid);
+       mt76_wcid_init(&mvif->sta.deflink.wcid, mvif->bss_conf.mt76.band_idx);
 
        mt7921_mac_wtbl_update(dev, idx,
                               MT_WTBL_UPDATE_ADM_COUNT_CLEAR);
index 230e4d20c88553c85e2739653cb1aff88fd9e3e7..58b0aaf5f0fde62091089534a919316afc44de5f 100644 (file)
@@ -378,12 +378,9 @@ static int mt7925_mac_link_bss_add(struct mt792x_dev *dev,
 
        idx = MT792x_WTBL_RESERVED - mconf->mt76.idx;
 
-       INIT_LIST_HEAD(&mlink->wcid.poll_list);
        mlink->wcid.idx = idx;
-       mlink->wcid.phy_idx = 0;
-       mlink->wcid.hw_key_idx = -1;
        mlink->wcid.tx_info |= MT_WCID_TX_INFO_SET;
-       mt76_wcid_init(&mlink->wcid);
+       mt76_wcid_init(&mlink->wcid, 0);
 
        mt7925_mac_wtbl_update(dev, idx,
                               MT_WTBL_UPDATE_ADM_COUNT_CLEAR);
@@ -850,10 +847,9 @@ static int mt7925_mac_link_sta_add(struct mt76_dev *mdev,
                return -ENOSPC;
 
        mconf = mt792x_vif_to_link(mvif, link_id);
-       INIT_LIST_HEAD(&mlink->wcid.poll_list);
+       mt76_wcid_init(&mlink->wcid, 0);
        mlink->wcid.sta = 1;
        mlink->wcid.idx = idx;
-       mlink->wcid.phy_idx = 0;
        mlink->wcid.tx_info |= MT_WCID_TX_INFO_SET;
        mlink->last_txs = jiffies;
        mlink->wcid.link_id = link_sta->link_id;
@@ -863,7 +859,7 @@ static int mt7925_mac_link_sta_add(struct mt76_dev *mdev,
        wcid = &mlink->wcid;
        ewma_signal_init(&wcid->rssi);
        rcu_assign_pointer(dev->mt76.wcid[wcid->idx], wcid);
-       mt76_wcid_init(wcid);
+       mt76_wcid_init(wcid, 0);
        ewma_avg_signal_init(&mlink->avg_ack_signal);
        memset(mlink->airtime_ac, 0,
               sizeof(msta->deflink.airtime_ac));
index 8679f8a6d49f5d3e09036f97a8a7a6ab647fa5df..9f1460eca4f409413f39d97f1c2d5a246b2db4cf 100644 (file)
@@ -214,12 +214,9 @@ mt7996_vif_link_add(struct mt7996_phy *phy, struct ieee80211_vif *vif,
        idx = MT7996_WTBL_RESERVED - mlink->mt76.idx;
 
        INIT_LIST_HEAD(&mlink->sta.rc_list);
-       INIT_LIST_HEAD(&mlink->sta.wcid.poll_list);
        mlink->sta.wcid.idx = idx;
-       mlink->sta.wcid.phy_idx = band_idx;
-       mlink->sta.wcid.hw_key_idx = -1;
        mlink->sta.wcid.tx_info |= MT_WCID_TX_INFO_SET;
-       mt76_wcid_init(&mlink->sta.wcid);
+       mt76_wcid_init(&mlink->sta.wcid, band_idx);
 
        mt7996_mac_wtbl_update(dev, idx,
                               MT_WTBL_UPDATE_ADM_COUNT_CLEAR);