> > This code was designed for regulatory changes, but the WARN_ON()
> > indicates that we got connected on a channel that we think isn't
> > actually usable. We quite possibly should reject that connection
> > there, but it seems to me it should've been rejected elsewhere
> > already...?
> 
> But this is prior to connection, right? This warning happens upon
> authenticate.

Yeah the warning happens in authentication.

> So in nl80211_authenticate() we do:
> 
> chan = nl80211_get_valid_chan(&rdev->wiphy,
>                             info->attrs[NL80211_ATTR_WIPHY_FREQ]);
> 
> and in cfg80211_mlme_auth():
> 
> req.bss = cfg80211_get_bss(&rdev->wiphy, chan, bssid, ssid, ssid_len,
>                          IEEE80211_BSS_TYPE_ESS,
>                          IEEE80211_PRIVACY_ANY);

That might not be what's going on - the OP said he was getting this
with iw, which doesn't go through nl80211_authenticate() but
nl80211_connect().

> After that the chain is:
> 
> ieee80211_mgd_auth() ->
>       ieee80211_prep_connection() ->
>               ieee80211_prep_channel() ->
>                       ieee80211_determine_chantype()

And somehow that determines that even a 20MHz no-HT channel isn't
valid.

johannes

Reply via email to