]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: rtw89: pass target link_id to ieee80211_nullfunc_get()
authorZong-Zhe Yang <kevin_yang@realtek.com>
Wed, 20 Nov 2024 03:40:54 +0000 (11:40 +0800)
committerPing-Ke Shih <pkshih@realtek.com>
Wed, 27 Nov 2024 03:13:02 +0000 (11:13 +0800)
When calling ieee80211_nullfunc_get(), pass the target link_id
instead of always -1.

Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20241120034054.13575-7-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/core.c
drivers/net/wireless/realtek/rtw89/fw.c

index c99111df90a7e7906a98b39cf9506c717ae76018..6f9b4f0b2748ff41dd1ba54f227d60e34c0b07a6 100644 (file)
@@ -3216,6 +3216,7 @@ static int rtw89_core_send_nullfunc(struct rtw89_dev *rtwdev,
                                    struct rtw89_vif_link *rtwvif_link, bool qos, bool ps)
 {
        struct ieee80211_vif *vif = rtwvif_link_to_vif(rtwvif_link);
+       int link_id = ieee80211_vif_is_mld(vif) ? rtwvif_link->link_id : -1;
        struct ieee80211_sta *sta;
        struct ieee80211_hdr *hdr;
        struct sk_buff *skb;
@@ -3231,7 +3232,7 @@ static int rtw89_core_send_nullfunc(struct rtw89_dev *rtwdev,
                goto out;
        }
 
-       skb = ieee80211_nullfunc_get(rtwdev->hw, vif, -1, qos);
+       skb = ieee80211_nullfunc_get(rtwdev->hw, vif, link_id, qos);
        if (!skb) {
                ret = -ENOMEM;
                goto out;
index 7bda9aab382cf84d9237761f4e10b9945fc22833..cbd759c844e5599d76859a6d051d6c33a669eaec 100644 (file)
@@ -2415,6 +2415,7 @@ static int rtw89_fw_h2c_add_general_pkt(struct rtw89_dev *rtwdev,
                                        u8 *id)
 {
        struct ieee80211_vif *vif = rtwvif_link_to_vif(rtwvif_link);
+       int link_id = ieee80211_vif_is_mld(vif) ? rtwvif_link->link_id : -1;
        struct rtw89_pktofld_info *info;
        struct sk_buff *skb;
        int ret;
@@ -2431,10 +2432,10 @@ static int rtw89_fw_h2c_add_general_pkt(struct rtw89_dev *rtwdev,
                skb = ieee80211_proberesp_get(rtwdev->hw, vif);
                break;
        case RTW89_PKT_OFLD_TYPE_NULL_DATA:
-               skb = ieee80211_nullfunc_get(rtwdev->hw, vif, -1, false);
+               skb = ieee80211_nullfunc_get(rtwdev->hw, vif, link_id, false);
                break;
        case RTW89_PKT_OFLD_TYPE_QOS_NULL:
-               skb = ieee80211_nullfunc_get(rtwdev->hw, vif, -1, true);
+               skb = ieee80211_nullfunc_get(rtwdev->hw, vif, link_id, true);
                break;
        case RTW89_PKT_OFLD_TYPE_EAPOL_KEY:
                skb = rtw89_eapol_get(rtwdev, rtwvif_link);