wifi: nl80211: send MLO links channel info in GET_INTERFACE
authorVeerendranath Jakkam <quic_vjakkam@quicinc.com>
Fri, 22 Jul 2022 13:10:00 +0000 (18:40 +0530)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 25 Aug 2022 09:05:07 +0000 (11:05 +0200)
Currently, MLO link level channel information not sent to
userspace when NL80211_CMD_GET_INTERFACE requested on MLD.

Add support to send channel information for all valid links
for NL80211_CMD_GET_INTERFACE request.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
Link: https://lore.kernel.org/r/20220722131000.3437894-1-quic_vjakkam@quicinc.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/nl80211.c

index 8568304..2baa2f2 100644 (file)
@@ -3865,12 +3865,19 @@ static int nl80211_send_iface(struct sk_buff *msg, u32 portid, u32 seq, int flag
 
                for_each_valid_link(wdev, link_id) {
                        struct nlattr *link = nla_nest_start(msg, link_id + 1);
+                       struct cfg80211_chan_def chandef = {};
+                       int ret;
 
                        if (nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link_id))
                                goto nla_put_failure;
                        if (nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN,
                                    wdev->links[link_id].addr))
                                goto nla_put_failure;
+
+                       ret = rdev_get_channel(rdev, wdev, link_id, &chandef);
+                       if (ret == 0 && nl80211_send_chandef(msg, &chandef))
+                               goto nla_put_failure;
+
                        nla_nest_end(msg, link);
                }