wifi: ieee80211: Fix the common size calculation for reconfiguration ML
authorIlan Peer <ilan.peer@intel.com>
Sun, 18 Jun 2023 18:49:45 +0000 (21:49 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Jul 2023 14:21:10 +0000 (16:21 +0200)
[ Upstream commit ce6e1f600b0cfc563a7d607de702262a58cd835d ]

The common information length is found in the first octet of the common
information.

Fixes: 0f48b8b88aa9 ("wifi: ieee80211: add definitions for multi-link element")
Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230618214435.3c7ed4817338.I42ef706cb827b4dade6e4ffbb6e7f341eaccd398@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
include/linux/ieee80211.h

index 470fafc..870ae4c 100644 (file)
@@ -4575,15 +4575,12 @@ static inline u8 ieee80211_mle_common_size(const u8 *data)
        case IEEE80211_ML_CONTROL_TYPE_BASIC:
        case IEEE80211_ML_CONTROL_TYPE_PREQ:
        case IEEE80211_ML_CONTROL_TYPE_TDLS:
+       case IEEE80211_ML_CONTROL_TYPE_RECONF:
                /*
                 * The length is the first octet pointed by mle->variable so no
                 * need to add anything
                 */
                break;
-       case IEEE80211_ML_CONTROL_TYPE_RECONF:
-               if (control & IEEE80211_MLC_RECONF_PRES_MLD_MAC_ADDR)
-                       common += ETH_ALEN;
-               return common;
        case IEEE80211_ML_CONTROL_TYPE_PRIO_ACCESS:
                if (control & IEEE80211_MLC_PRIO_ACCESS_PRES_AP_MLD_MAC_ADDR)
                        common += ETH_ALEN;