|
Takashi Iwai |
026de4 |
From 041c881a0ba8a75f71118bd9766b78f04beed469 Mon Sep 17 00:00:00 2001
|
|
Takashi Iwai |
026de4 |
From: Karthikeyan Kathirvel <kathirve@codeaurora.org>
|
|
Takashi Iwai |
026de4 |
Date: Thu, 11 Mar 2021 10:59:07 +0530
|
|
Takashi Iwai |
026de4 |
Subject: [PATCH] mac80211: choose first enabled channel for monitor
|
|
Takashi Iwai |
026de4 |
Git-commit: 041c881a0ba8a75f71118bd9766b78f04beed469
|
|
Takashi Iwai |
026de4 |
Patch-mainline: v5.12-rc5
|
|
Takashi Iwai |
026de4 |
References: git-fixes
|
|
Takashi Iwai |
026de4 |
|
|
Takashi Iwai |
026de4 |
Even if the first channel from sband channel list is invalid
|
|
Takashi Iwai |
026de4 |
or disabled mac80211 ends up choosing it as the default channel
|
|
Takashi Iwai |
026de4 |
for monitor interfaces, making them not usable.
|
|
Takashi Iwai |
026de4 |
|
|
Takashi Iwai |
026de4 |
Fix this by assigning the first available valid or enabled
|
|
Takashi Iwai |
026de4 |
channel instead.
|
|
Takashi Iwai |
026de4 |
|
|
Takashi Iwai |
026de4 |
Signed-off-by: Karthikeyan Kathirvel <kathirve@codeaurora.org>
|
|
Takashi Iwai |
026de4 |
Link: https://lore.kernel.org/r/1615440547-7661-1-git-send-email-kathirve@codeaurora.org
|
|
Takashi Iwai |
026de4 |
[reword commit message, comment, code cleanups]
|
|
Takashi Iwai |
026de4 |
|
|
Takashi Iwai |
026de4 |
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
|
Takashi Iwai |
026de4 |
Acked-by: Takashi Iwai <tiwai@suse.de>
|
|
Takashi Iwai |
026de4 |
|
|
Takashi Iwai |
026de4 |
---
|
|
Takashi Iwai |
026de4 |
net/mac80211/main.c | 13 ++++++++++++-
|
|
Takashi Iwai |
026de4 |
1 file changed, 12 insertions(+), 1 deletion(-)
|
|
Takashi Iwai |
026de4 |
|
|
Takashi Iwai |
026de4 |
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
|
|
Takashi Iwai |
026de4 |
index 4f3f8bb58e76..1b9c82616606 100644
|
|
Takashi Iwai |
026de4 |
--- a/net/mac80211/main.c
|
|
Takashi Iwai |
026de4 |
+++ b/net/mac80211/main.c
|
|
Takashi Iwai |
026de4 |
@@ -973,8 +973,19 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
|
|
Takashi Iwai |
026de4 |
continue;
|
|
Takashi Iwai |
026de4 |
|
|
Takashi Iwai |
026de4 |
if (!dflt_chandef.chan) {
|
|
Takashi Iwai |
026de4 |
+ /*
|
|
Takashi Iwai |
026de4 |
+ * Assign the first enabled channel to dflt_chandef
|
|
Takashi Iwai |
026de4 |
+ * from the list of channels
|
|
Takashi Iwai |
026de4 |
+ */
|
|
Takashi Iwai |
026de4 |
+ for (i = 0; i < sband->n_channels; i++)
|
|
Takashi Iwai |
026de4 |
+ if (!(sband->channels[i].flags &
|
|
Takashi Iwai |
026de4 |
+ IEEE80211_CHAN_DISABLED))
|
|
Takashi Iwai |
026de4 |
+ break;
|
|
Takashi Iwai |
026de4 |
+ /* if none found then use the first anyway */
|
|
Takashi Iwai |
026de4 |
+ if (i == sband->n_channels)
|
|
Takashi Iwai |
026de4 |
+ i = 0;
|
|
Takashi Iwai |
026de4 |
cfg80211_chandef_create(&dflt_chandef,
|
|
Takashi Iwai |
026de4 |
- &sband->channels[0],
|
|
Takashi Iwai |
026de4 |
+ &sband->channels[i],
|
|
Takashi Iwai |
026de4 |
NL80211_CHAN_NO_HT);
|
|
Takashi Iwai |
026de4 |
/* init channel we're on */
|
|
Takashi Iwai |
026de4 |
if (!local->use_chanctx && !local->_oper_chandef.chan) {
|
|
Takashi Iwai |
026de4 |
--
|
|
Takashi Iwai |
026de4 |
2.26.2
|
|
Takashi Iwai |
026de4 |
|