mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
mac80211: choose first enabled channel for monitor
[ Upstream commit 041c881a0b ]
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 <kathirve@codeaurora.org>
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 <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
7705c48b86
commit
0a66bd60b1
@@ -982,8 +982,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) {
|
||||
|
||||
Reference in New Issue
Block a user