wifi: mt76: mt7925: fix the invalid ip address for arp offload
authorMing Yen Hsieh <mingyen.hsieh@mediatek.com>
Thu, 7 Nov 2024 05:30:05 +0000 (13:30 +0800)
committerFelix Fietkau <nbd@nbd.name>
Tue, 14 Jan 2025 12:34:34 +0000 (13:34 +0100)
The wrong ieee80211_vif will lead to get invalid ip address and
the correct ieee80211_vif can be obtained from ieee80211_bss_conf.

Fixes: 147324292979 ("wifi: mt76: mt7925: add link handling in the BSS_CHANGED_ARP_FILTER handler")
Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com>
Link: https://patch.msgid.link/20241107053005.10558-1-mingyen.hsieh@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c

index b43617dbd5fde39dbf67b274ec707be259d5451a..123a585098e3bcb41919b91b5e2ae7d724356599 100644 (file)
@@ -123,10 +123,8 @@ EXPORT_SYMBOL_GPL(mt7925_mcu_regval);
 int mt7925_mcu_update_arp_filter(struct mt76_dev *dev,
                                 struct ieee80211_bss_conf *link_conf)
 {
-       struct ieee80211_vif *mvif = container_of((void *)link_conf->vif,
-                                                 struct ieee80211_vif,
-                                                 drv_priv);
        struct mt792x_bss_conf *mconf = mt792x_link_conf_to_mconf(link_conf);
+       struct ieee80211_vif *mvif = link_conf->vif;
        struct sk_buff *skb;
        int i, len = min_t(int, mvif->cfg.arp_addr_cnt,
                           IEEE80211_BSS_ARP_ADDR_LIST_LEN);