Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp419432ybz; Fri, 17 Apr 2020 03:38:42 -0700 (PDT) X-Google-Smtp-Source: APiQypKSvBIdU0gVFqP0JScXkSjHlqOYcjmEJKl3kV3k0GgZnVsjuKrEAkulmHTEo1KgFbKNVujd X-Received: by 2002:a50:b882:: with SMTP id l2mr2285412ede.350.1587119922279; Fri, 17 Apr 2020 03:38:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587119922; cv=none; d=google.com; s=arc-20160816; b=1BovAXeAcE3loxVpb/UkZ/edacu7ERKFkoCyEWiWXOQpP+OeWI5SaHwDLtQWpKUB9k 2m/YNSA6WjTgxjJfKKj5Cdpfr/S/dz1a6KZ/WKdiy2NR5wl5ufGK/1TBpU5Swtd5tez5 u7BoRcJfkMW+JS31PC42Mpf20WHaf1N4gPVkENUXPi9sMkNsFguVOcl0sY3YHCDx5DvW Pt5hEna03Ib/XWVN/x8s6mWHL35gpIP7J+trr8jQixQlKvAJqGD2X/2eyNP1eXlB/IxZ SkL58uwM8Ow69h8vV3R3t8R3mBBnD8nrPFEc+Ge8Uyf/TTrfsAXInqdWInm/6MNLBT0Y QdEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=MSwXFq4b/qPGAJZ88NM9SARvvz9gIO+EWks+VuKjVjU=; b=utlu5lI11BXTT4qQ9jxGP9So8FfjM5A8pDiJ3PKuzXXcXzwV/2xzDAuMxzCUsyNmBR TqcjUv8tzCHOvP4iAXhkqQKjGfRiSyYWbVezBHSkZe3iIFx5o4nQNrqeU8So9O+6ocfK IDay3jfAxRKFygbIMDjakXv4hEdzrVdx6pFbhpplWiKnywYK65XkUezy2pSyxEfRCdiG woXCnH+MvBZB3ReF/IRkkgSgwSyjmAXCOHCYy8fbHDh7b6zr21ch57SaVDkbtggAup5q hWLWJJOF1Gff5aBo7TudpyVsMBBq5rcDTzhhdkDWhLT0J3pvubF6I/7WqXeAiNF9AF1y aNBw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id 4si5595251ejy.347.2020.04.17.03.38.18; Fri, 17 Apr 2020 03:38:42 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728742AbgDQKiL (ORCPT + 99 others); Fri, 17 Apr 2020 06:38:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55826 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726632AbgDQKiL (ORCPT ); Fri, 17 Apr 2020 06:38:11 -0400 Received: from sipsolutions.net (s3.sipsolutions.net [IPv6:2a01:4f8:191:4433::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4E329C061A0C for ; Fri, 17 Apr 2020 03:38:11 -0700 (PDT) Received: by sipsolutions.net with esmtpsa (TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim 4.93) (envelope-from ) id 1jPONs-0072Ea-95; Fri, 17 Apr 2020 12:38:08 +0200 From: Johannes Berg To: linux-wireless@vger.kernel.org Cc: Johannes Berg , Felix Fietkau Subject: [PATCH v2] mac80211: mlme: remove duplicate AID bookkeeping Date: Fri, 17 Apr 2020 12:38:04 +0200 Message-Id: <20200417123802.085d4a322b0c.I2e7a2ceceea8c6880219f9e9ee4d4ac985fd295a@changeid> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Johannes Berg Maintain the connection AID only in sdata->vif.bss_conf.aid, not also in sdata->u.mgd.aid. Keep setting that where we set ifmgd->aid before, which has the side effect of exposing the AID to the driver before the station entry (AP) is marked associated, in case it needs it then. Requested-by: Felix Fietkau Signed-off-by: Johannes Berg --- net/mac80211/debugfs_netdev.c | 2 +- net/mac80211/ieee80211_i.h | 2 -- net/mac80211/mlme.c | 7 +++---- net/mac80211/tdls.c | 3 +-- net/mac80211/tx.c | 2 +- 5 files changed, 6 insertions(+), 10 deletions(-) diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c index 3dbe7c5cefd1..d7e955127d5c 100644 --- a/net/mac80211/debugfs_netdev.c +++ b/net/mac80211/debugfs_netdev.c @@ -236,7 +236,7 @@ IEEE80211_IF_FILE_R(hw_queues); /* STA attributes */ IEEE80211_IF_FILE(bssid, u.mgd.bssid, MAC); -IEEE80211_IF_FILE(aid, u.mgd.aid, DEC); +IEEE80211_IF_FILE(aid, vif.bss_conf.aid, DEC); IEEE80211_IF_FILE(beacon_timeout, u.mgd.beacon_timeout, JIFFIES_TO_MS); static int ieee80211_set_smps(struct ieee80211_sub_if_data *sdata, diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index f8ed4f621f7f..934a91bef575 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h @@ -450,8 +450,6 @@ struct ieee80211_if_managed { u8 bssid[ETH_ALEN] __aligned(2); - u16 aid; - bool powersave; /* powersave requested for this iface */ bool broken_ap; /* AP is broken -- turn off powersave */ bool have_beacon; diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 16d75da0996a..7139335f29c0 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@ -3249,7 +3249,7 @@ static bool ieee80211_assoc_success(struct ieee80211_sub_if_data *sdata, return false; } - ifmgd->aid = aid; + sdata->vif.bss_conf.aid = aid; ifmgd->tdls_chan_switch_prohibited = elems->ext_capab && elems->ext_capab_len >= 5 && (elems->ext_capab[4] & WLAN_EXT_CAPA5_TDLS_CH_SW_PROHIBITED); @@ -3521,9 +3521,8 @@ static bool ieee80211_assoc_success(struct ieee80211_sub_if_data *sdata, bss_conf->protected_keep_alive = false; } - /* set AID and assoc capability, + /* set assoc capability (AID was already set earlier), * ieee80211_set_associated() will tell the driver */ - bss_conf->aid = aid; bss_conf->assoc_capability = capab_info; ieee80211_set_associated(sdata, cbss, changed); @@ -3948,7 +3947,7 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata, mgmt->bssid, bssid); if (ieee80211_hw_check(&local->hw, PS_NULLFUNC_STACK) && - ieee80211_check_tim(elems.tim, elems.tim_len, ifmgd->aid)) { + ieee80211_check_tim(elems.tim, elems.tim_len, bss_conf->aid)) { if (local->hw.conf.dynamic_ps_timeout > 0) { if (local->hw.conf.flags & IEEE80211_CONF_PS) { local->hw.conf.flags &= ~IEEE80211_CONF_PS; diff --git a/net/mac80211/tdls.c b/net/mac80211/tdls.c index fca1f5477396..7ff22f9d6e80 100644 --- a/net/mac80211/tdls.c +++ b/net/mac80211/tdls.c @@ -226,12 +226,11 @@ static void ieee80211_tdls_add_link_ie(struct ieee80211_sub_if_data *sdata, static void ieee80211_tdls_add_aid(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb) { - struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; u8 *pos = skb_put(skb, 4); *pos++ = WLAN_EID_AID; *pos++ = 2; /* len */ - put_unaligned_le16(ifmgd->aid, pos); + put_unaligned_le16(sdata->vif.bss_conf.aid, pos); } /* translate numbering in the WMM parameter IE to the mac80211 notation */ diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 82846aca86d9..3dc1990e15c5 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -5006,7 +5006,7 @@ struct sk_buff *ieee80211_pspoll_get(struct ieee80211_hw *hw, pspoll = skb_put_zero(skb, sizeof(*pspoll)); pspoll->frame_control = cpu_to_le16(IEEE80211_FTYPE_CTL | IEEE80211_STYPE_PSPOLL); - pspoll->aid = cpu_to_le16(ifmgd->aid); + pspoll->aid = cpu_to_le16(sdata->vif.bss_conf.aid); /* aid in PS-Poll has its two MSBs each set to 1 */ pspoll->aid |= cpu_to_le16(1 << 15 | 1 << 14); -- 2.25.1