From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.2 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 70702C433E1 for ; Mon, 29 Mar 2021 22:23:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 003D5619AB for ; Mon, 29 Mar 2021 22:23:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232214AbhC2WWp (ORCPT ); Mon, 29 Mar 2021 18:22:45 -0400 Received: from mail.kernel.org ([198.145.29.99]:45902 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231933AbhC2WVw (ORCPT ); Mon, 29 Mar 2021 18:21:52 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id DE1B361989; Mon, 29 Mar 2021 22:21:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1617056512; bh=9dZ7igudTV9weAVtKaJoWZF1q0M8xiZt7lrw3zitF9Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EIjWJttfezpwJlQsOkTjo7mnWw7k7Xc8MT2WAzeARj6hp4jT1Ww4s2M1qc4wh1IFV UXUZ8U+abIvUsbbw6w1OLQUMFeEHqjM6dpl+ti/wPUbguzR3uZl+FJBlIB1vdRlHIZ 5K4Hg2RQCxpURGeVhvXKhlO8jSZDjWj7v23derlklQRW4Vb6Brimg8sRfjzz8t0do8 SUdb901zcx3VxzFNu3OnSjf2h0N1NsyUy8uZDOkdl1ZJlRHPr4+Ha8rtjaLX/jIBaI DLbRlUdzijEuTWArWfmuX1GP4gMHhk7EcdEvaKDJ/OhQoqUIoHxju/Yzjx2Gte8FoT GqVPmt96FNkAw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Karthikeyan Kathirvel , Johannes Berg , Sasha Levin , linux-wireless@vger.kernel.org, netdev@vger.kernel.org Subject: [PATCH AUTOSEL 5.11 15/38] mac80211: choose first enabled channel for monitor Date: Mon, 29 Mar 2021 18:21:10 -0400 Message-Id: <20210329222133.2382393-15-sashal@kernel.org> X-Mailer: git-send-email 2.30.1 In-Reply-To: <20210329222133.2382393-1-sashal@kernel.org> References: <20210329222133.2382393-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Karthikeyan Kathirvel [ Upstream commit 041c881a0ba8a75f71118bd9766b78f04beed469 ] Even if the first channel from sband channel list is invalid or disabled mac80211 ends up choosing it as the default channel for monitor interfaces, making them not usable. Fix this by assigning the first available valid or enabled channel instead. Signed-off-by: Karthikeyan Kathirvel Link: https://lore.kernel.org/r/1615440547-7661-1-git-send-email-kathirve@codeaurora.org [reword commit message, comment, code cleanups] Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin --- net/mac80211/main.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/net/mac80211/main.c b/net/mac80211/main.c index dee88ec566ad..d1023188ef37 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c @@ -970,8 +970,19 @@ int ieee80211_register_hw(struct ieee80211_hw *hw) continue; if (!dflt_chandef.chan) { + /* + * Assign the first enabled channel to dflt_chandef + * from the list of channels + */ + for (i = 0; i < sband->n_channels; i++) + if (!(sband->channels[i].flags & + IEEE80211_CHAN_DISABLED)) + break; + /* if none found then use the first anyway */ + if (i == sband->n_channels) + i = 0; cfg80211_chandef_create(&dflt_chandef, - &sband->channels[0], + &sband->channels[i], NL80211_CHAN_NO_HT); /* init channel we're on */ if (!local->use_chanctx && !local->_oper_chandef.chan) { -- 2.30.1