Skip to content

Commit a8ba4ac

Browse files
Po-Hao HuangPing-Ke Shih
authored andcommitted
wifi: rtw89: send nullfunc based on the given link
The nullfunc sender function is link specific. Use core_tx_write_link with sw_mld flag to TX the nullfunc via the given link. Signed-off-by: Po-Hao Huang <[email protected]> Signed-off-by: Zong-Zhe Yang <[email protected]> Signed-off-by: Ping-Ke Shih <[email protected]> Link: https://patch.msgid.link/[email protected]
1 parent 829bd35 commit a8ba4ac

File tree

1 file changed

+10
-1
lines changed
  • drivers/net/wireless/realtek/rtw89

1 file changed

+10
-1
lines changed

drivers/net/wireless/realtek/rtw89/core.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3335,8 +3335,10 @@ static int rtw89_core_send_nullfunc(struct rtw89_dev *rtwdev,
33353335
{
33363336
struct ieee80211_vif *vif = rtwvif_link_to_vif(rtwvif_link);
33373337
int link_id = ieee80211_vif_is_mld(vif) ? rtwvif_link->link_id : -1;
3338+
struct rtw89_sta_link *rtwsta_link;
33383339
struct ieee80211_sta *sta;
33393340
struct ieee80211_hdr *hdr;
3341+
struct rtw89_sta *rtwsta;
33403342
struct sk_buff *skb;
33413343
int ret, qsel;
33423344

@@ -3349,6 +3351,7 @@ static int rtw89_core_send_nullfunc(struct rtw89_dev *rtwdev,
33493351
ret = -EINVAL;
33503352
goto out;
33513353
}
3354+
rtwsta = sta_to_rtwsta(sta);
33523355

33533356
skb = ieee80211_nullfunc_get(rtwdev->hw, vif, link_id, qos);
33543357
if (!skb) {
@@ -3360,7 +3363,13 @@ static int rtw89_core_send_nullfunc(struct rtw89_dev *rtwdev,
33603363
if (ps)
33613364
hdr->frame_control |= cpu_to_le16(IEEE80211_FCTL_PM);
33623365

3363-
ret = rtw89_core_tx_write(rtwdev, vif, sta, skb, &qsel);
3366+
rtwsta_link = rtwsta->links[rtwvif_link->link_id];
3367+
if (unlikely(!rtwsta_link)) {
3368+
ret = -ENOLINK;
3369+
goto out;
3370+
}
3371+
3372+
ret = rtw89_core_tx_write_link(rtwdev, rtwvif_link, rtwsta_link, skb, &qsel, true);
33643373
if (ret) {
33653374
rtw89_warn(rtwdev, "nullfunc transmit failed: %d\n", ret);
33663375
dev_kfree_skb_any(skb);

0 commit comments

Comments
 (0)