]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: mac80211: set ieee80211_prep_tx_info::link_id upon Auth Rx
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Wed, 5 Feb 2025 09:39:20 +0000 (11:39 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 May 2025 09:13:32 +0000 (11:13 +0200)
[ Upstream commit 8c60179b64434894eac1ffab7396bac131bc8b6e ]

This will be used by the low level driver.
Note that link_id  will be 0 in case of a non-MLO authentication.
Also fix a call-site of mgd_prepare_tx() where the link_id was not
populated.

Update the documentation to reflect the current state
ieee80211_prep_tx_info::link_id is also available in mgd_complete_tx().

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250205110958.6a590f189ce5.I1fc5c0da26b143f5b07191eb592f01f7083d55ae@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
include/net/mac80211.h
net/mac80211/driver-ops.h
net/mac80211/mlme.c

index dcbb2e54746c7f91cd3d6e50ead611d3e315cb71..b421526aae851281d3cc0e1cb0f03ca71b26412b 100644 (file)
@@ -7,7 +7,7 @@
  * Copyright 2007-2010 Johannes Berg <johannes@sipsolutions.net>
  * Copyright 2013-2014  Intel Mobile Communications GmbH
  * Copyright (C) 2015 - 2017 Intel Deutschland GmbH
- * Copyright (C) 2018 - 2024 Intel Corporation
+ * Copyright (C) 2018 - 2025 Intel Corporation
  */
 
 #ifndef MAC80211_H
@@ -3829,7 +3829,7 @@ enum ieee80211_reconfig_type {
  * @was_assoc: set if this call is due to deauth/disassoc
  *     while just having been associated
  * @link_id: the link id on which the frame will be TX'ed.
- *     Only used with the mgd_prepare_tx() method.
+ *     0 for a non-MLO connection.
  */
 struct ieee80211_prep_tx_info {
        u16 duration;
index 5acecc7bd4a99055549504324188fdda95a15235..307587c8a0037b8c02591ba8f3f0c48e2b26f18f 100644 (file)
@@ -2,7 +2,7 @@
 /*
 * Portions of this file
 * Copyright(c) 2016 Intel Deutschland GmbH
-* Copyright (C) 2018-2019, 2021-2024 Intel Corporation
+* Copyright (C) 2018-2019, 2021-2025 Intel Corporation
 */
 
 #ifndef __MAC80211_DRIVER_OPS
@@ -955,6 +955,7 @@ static inline void drv_mgd_complete_tx(struct ieee80211_local *local,
                return;
        WARN_ON_ONCE(sdata->vif.type != NL80211_IFTYPE_STATION);
 
+       info->link_id = info->link_id < 0 ? 0 : info->link_id;
        trace_drv_mgd_complete_tx(local, sdata, info->duration,
                                  info->subtype, info->success);
        if (local->ops->mgd_complete_tx)
index ca247609f11bfe71058ad6be19d542baa96d8f8c..8235400b7e5d8a6fc11fdb16822e5fdef9e4f1cc 100644 (file)
@@ -8,7 +8,7 @@
  * Copyright 2007, Michael Wu <flamingice@sourmilk.net>
  * Copyright 2013-2014  Intel Mobile Communications GmbH
  * Copyright (C) 2015 - 2017 Intel Deutschland GmbH
- * Copyright (C) 2018 - 2024 Intel Corporation
+ * Copyright (C) 2018 - 2025 Intel Corporation
  */
 
 #include <linux/delay.h>
@@ -4579,6 +4579,8 @@ static void ieee80211_rx_mgmt_auth(struct ieee80211_sub_if_data *sdata,
        auth_transaction = le16_to_cpu(mgmt->u.auth.auth_transaction);
        status_code = le16_to_cpu(mgmt->u.auth.status_code);
 
+       info.link_id = ifmgd->auth_data->link_id;
+
        if (auth_alg != ifmgd->auth_data->algorithm ||
            (auth_alg != WLAN_AUTH_SAE &&
             auth_transaction != ifmgd->auth_data->expected_transaction) ||