Received: by 2002:a05:6512:3d0e:0:0:0:0 with SMTP id d14csp42147lfv; Tue, 12 Apr 2022 16:29:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxwy4/NlWs6NgY7uPT1I/eN6ySNNZGvJy2b9qSLQRRgp+d7LMzaex4oIhK5aucXiTvjl1Qj X-Received: by 2002:a63:1543:0:b0:39d:9729:1992 with SMTP id 3-20020a631543000000b0039d97291992mr4500032pgv.155.1649806163233; Tue, 12 Apr 2022 16:29:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649806163; cv=none; d=google.com; s=arc-20160816; b=H2aNhgHOCcSW0FIaPUf2FvF94xd+zEK+5wqLZp9f3m/a9BMoJomzcf1SqAOaQ6z0pP ie4GShW98j8jqbCqQtcaXiTSXaPtHu1uYxHDPUXRjC+yhccDfp6qGslb7zHtRs9gQEHB 8iGzNnwUzQgx5SripylXnpxgz93kMBGX92Uf1+204A7z7yfiZV8M2RBd2KWWGlVXd28s T6qK8ZvKuJn2y+9Wow+l0gNfjEMWWi9VC6UkhHMASDHp4Uc8f3FsObXQhD5/PnqWKOaM fQI/pBUooBviOSLBeSApbevFSXG+qcyz58CZWAZIdAt8YkMPO+wn63js+X+lGJxyEzWq +25A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Ej7+tuUGFONwVyCCV1rx3BHxHXFQVeQ15ixIAxExilY=; b=FgPq9/VILAhfok1/EsbJKLlWKSShbul50t8KFEWdrbBq+gmoQaemZQ54PWUVH6GTGi OOhQ/qxx0SUoHhxRmG1xKIPmNDuFGpHrNLscFaIlXivD3t+Rr9Y4xHix8AU4NszDJD0N 4qJPO8nY8AUjVugGlSac/Pwp9nqm2//0PxOU2RZtBDE20Re5wRiFAMV/C20edqFstqry vaVgBhgYSig1zGvrkx0tJojZCTctXxNcboYZ6skbdk1zi2AlsU+Bum75MvgkZG0qjoHp MzlAlJhukroZ+FNacbOYtvdpugXfeBqvs8JJ/ZFJO1uEnnxoi50ecWVfg5gp0OBtupAz Vqdw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=W3Ea88sK; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id u70-20020a638549000000b003816043f0f5si3957478pgd.746.2022.04.12.16.29.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 16:29:23 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=W3Ea88sK; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id BAA86108743; Tue, 12 Apr 2022 14:21:37 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1352636AbiDLHFr (ORCPT + 99 others); Tue, 12 Apr 2022 03:05:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48012 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1351721AbiDLGyP (ORCPT ); Tue, 12 Apr 2022 02:54:15 -0400 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 55CB938BD1; Mon, 11 Apr 2022 23:43:41 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id DF392CE1C0A; Tue, 12 Apr 2022 06:43:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 04103C385A6; Tue, 12 Apr 2022 06:43:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1649745818; bh=4C9l3ozTCA7bF8Ub+SzXQVBfPrIj+YQioOgIA03OWB0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=W3Ea88sKR3JvekLpsHEQLGBk46e3Hoaum8TKKJdTziMn88BaWBY6GtLedIp4DABPZ p8Dv7LW4RlTsemQq9F7VpJRhlsNbT7KzZY9CilZ81FdF9S3xpwOU91gPW7r00MjhZ7 G95QMRkvzJ0CK4dVTd9+rw7Xk+Yn8/dMeGPj9iiY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Miri Korenblit , Luca Coelho , Sasha Levin Subject: [PATCH 5.15 060/277] iwlwifi: mvm: move only to an enabled channel Date: Tue, 12 Apr 2022 08:27:43 +0200 Message-Id: <20220412062943.785594959@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220412062942.022903016@linuxfoundation.org> References: <20220412062942.022903016@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Miri Korenblit [ Upstream commit e04135c07755d001b5cde61048c69a7cc84bb94b ] During disassociation we're decreasing the phy's ref count. If the ref count becomes 0, we're configuring the phy ctxt to the default channel (the lowest channel which the device can operate on). Currently we're not checking whether the the default channel is enabled or not. Fix it by configuring the phy ctxt to the lowest channel which is enabled. Signed-off-by: Miri Korenblit Signed-off-by: Luca Coelho Link: https://lore.kernel.org/r/iwlwifi.20220210181930.03f281b6a6bc.I5b63d43ec41996d599e6f37ec3f32e878b3e405e@changeid Signed-off-by: Luca Coelho Signed-off-by: Sasha Levin --- .../net/wireless/intel/iwlwifi/mvm/phy-ctxt.c | 31 +++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c b/drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c index 035336a9e755..6d82725cb87d 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause /* - * Copyright (C) 2012-2014, 2018-2021 Intel Corporation + * Copyright (C) 2012-2014, 2018-2022 Intel Corporation * Copyright (C) 2013-2014 Intel Mobile Communications GmbH * Copyright (C) 2017 Intel Deutschland GmbH */ @@ -295,18 +295,31 @@ void iwl_mvm_phy_ctxt_unref(struct iwl_mvm *mvm, struct iwl_mvm_phy_ctxt *ctxt) * otherwise we might not be able to reuse this phy. */ if (ctxt->ref == 0) { - struct ieee80211_channel *chan; + struct ieee80211_channel *chan = NULL; struct cfg80211_chan_def chandef; - struct ieee80211_supported_band *sband = NULL; - enum nl80211_band band = NL80211_BAND_2GHZ; + struct ieee80211_supported_band *sband; + enum nl80211_band band; + int channel; - while (!sband && band < NUM_NL80211_BANDS) - sband = mvm->hw->wiphy->bands[band++]; + for (band = NL80211_BAND_2GHZ; band < NUM_NL80211_BANDS; band++) { + sband = mvm->hw->wiphy->bands[band]; - if (WARN_ON(!sband)) - return; + if (!sband) + continue; + + for (channel = 0; channel < sband->n_channels; channel++) + if (!(sband->channels[channel].flags & + IEEE80211_CHAN_DISABLED)) { + chan = &sband->channels[channel]; + break; + } - chan = &sband->channels[0]; + if (chan) + break; + } + + if (WARN_ON(!chan)) + return; cfg80211_chandef_create(&chandef, chan, NL80211_CHAN_NO_HT); iwl_mvm_phy_ctxt_changed(mvm, ctxt, &chandef, 1, 1); -- 2.35.1