]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
wifi: cfg80211: adjust assoc comeback for MLO
authorJohannes Berg <johannes.berg@intel.com>
Tue, 28 Jun 2022 09:25:38 +0000 (11:25 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 15 Jul 2022 09:43:17 +0000 (11:43 +0200)
We only report the BSSID to userspace, so change the
argument from BSS struct pointer to AP address, which
we'll use to carry either the BSSID or AP MLD address.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/net/cfg80211.h
net/mac80211/mlme.c
net/wireless/nl80211.c
net/wireless/trace.h

index fbbe1796b85faa502d2b4d840e2fe911efe8e4ad..1d8cecf035d115fb23e3edd55b5c24f7ea03704d 100644 (file)
@@ -8592,13 +8592,13 @@ bool cfg80211_iftype_allowed(struct wiphy *wiphy, enum nl80211_iftype iftype,
  * cfg80211_assoc_comeback - notification of association that was
  * temporarly rejected with a comeback
  * @netdev: network device
- * @bss: the bss entry with which association is in progress.
+ * @ap_addr: AP (MLD) address that rejected the assocation
  * @timeout: timeout interval value TUs.
  *
  * this function may sleep. the caller must hold the corresponding wdev's mutex.
  */
 void cfg80211_assoc_comeback(struct net_device *netdev,
-                            struct cfg80211_bss *bss, u32 timeout);
+                            const u8 *ap_addr, u32 timeout);
 
 /* Logging, debugging and troubleshooting/diagnostic helpers. */
 
index ac37cf74ab74b57726bb30571c4ce19c1bda34db..91f07b67f2f04a428c09aa653146b254be9c8043 100644 (file)
@@ -3944,7 +3944,7 @@ static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,
            elems->timeout_int->type == WLAN_TIMEOUT_ASSOC_COMEBACK) {
                u32 tu, ms;
 
-               cfg80211_assoc_comeback(sdata->dev, assoc_data->bss,
+               cfg80211_assoc_comeback(sdata->dev, assoc_data->bss->bssid,
                                        le32_to_cpu(elems->timeout_int->value));
 
                tu = le32_to_cpu(elems->timeout_int->value);
index 886d964242ae85861bcdcd3c637c434029eb2381..6c3b47a7960f72be4e1aa2a82fde0bcf0824f096 100644 (file)
@@ -18036,7 +18036,7 @@ static void nl80211_send_remain_on_chan_event(
 }
 
 void cfg80211_assoc_comeback(struct net_device *netdev,
-                            struct cfg80211_bss *bss, u32 timeout)
+                            const u8 *ap_addr, u32 timeout)
 {
        struct wireless_dev *wdev = netdev->ieee80211_ptr;
        struct wiphy *wiphy = wdev->wiphy;
@@ -18044,7 +18044,7 @@ void cfg80211_assoc_comeback(struct net_device *netdev,
        struct sk_buff *msg;
        void *hdr;
 
-       trace_cfg80211_assoc_comeback(wdev, bss->bssid, timeout);
+       trace_cfg80211_assoc_comeback(wdev, ap_addr, timeout);
 
        msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL);
        if (!msg)
@@ -18058,7 +18058,7 @@ void cfg80211_assoc_comeback(struct net_device *netdev,
 
        if (nla_put_u32(msg, NL80211_ATTR_WIPHY, rdev->wiphy_idx) ||
            nla_put_u32(msg, NL80211_ATTR_IFINDEX, netdev->ifindex) ||
-           nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, bss->bssid) ||
+           nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, ap_addr) ||
            nla_put_u32(msg, NL80211_ATTR_TIMEOUT, timeout))
                goto nla_put_failure;
 
index 19efb95395330ff3dd935909c8d38dbe97ea3b99..94d107cab72c3e18b37e19034a6c76ba16e5ff06 100644 (file)
@@ -3764,20 +3764,20 @@ TRACE_EVENT(cfg80211_bss_color_notify,
 );
 
 TRACE_EVENT(cfg80211_assoc_comeback,
-       TP_PROTO(struct wireless_dev *wdev, const u8 *bssid, u32 timeout),
-       TP_ARGS(wdev, bssid, timeout),
+       TP_PROTO(struct wireless_dev *wdev, const u8 *ap_addr, u32 timeout),
+       TP_ARGS(wdev, ap_addr, timeout),
        TP_STRUCT__entry(
                WDEV_ENTRY
-               MAC_ENTRY(bssid)
+               MAC_ENTRY(ap_addr)
                __field(u32, timeout)
        ),
        TP_fast_assign(
                WDEV_ASSIGN;
-               MAC_ASSIGN(bssid, bssid);
+               MAC_ASSIGN(ap_addr, ap_addr);
                __entry->timeout = timeout;
        ),
        TP_printk(WDEV_PR_FMT ", " MAC_PR_FMT ", timeout: %u TUs",
-                 WDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->timeout)
+                 WDEV_PR_ARG, MAC_PR_ARG(ap_addr), __entry->timeout)
 );
 
 DECLARE_EVENT_CLASS(link_station_add_mod,