On 12/12/15(Sat) 00:19, Stefan Sperling wrote:
> On Sat, Dec 12, 2015 at 12:09:17AM +0100, Stefan Sperling wrote:
> > Here's an updated diff, which applies to -current, for testing.
> > I'll spend some time tomorrow splitting this up into smaller
> > chunks for review with explanations of the changes.
> > 
> > No known problems exist with this diff.
> > Please test anywhere, even without iwm(4). Thanks.
> > 
> 
> For some reason, a rouge pci/if_iwm.c file sneaked into
> the previous diff. Sorry about that.  

> Index: net80211/ieee80211_input.c
> ===================================================================
> RCS file: /cvs/src/sys/net80211/ieee80211_input.c,v
> retrieving revision 1.142
> diff -u -p -r1.142 ieee80211_input.c
> --- net80211/ieee80211_input.c        15 Nov 2015 11:14:17 -0000      1.142
> +++ net80211/ieee80211_input.c        11 Dec 2015 22:43:24 -0000
> @@ -1569,10 +1597,13 @@ ieee80211_recv_probe_resp(struct ieee802
>        */
>       if (ni->ni_flags & IEEE80211_NODE_QOS) {
>               /* always prefer EDCA IE over Wi-Fi Alliance WMM IE */
> -             if (edcaie != NULL)
> -                     ieee80211_parse_edca_params(ic, edcaie);
> -             else if (wmmie != NULL)
> -                     ieee80211_parse_wmm_params(ic, wmmie);
> +             if ((edcaie != NULL &&
> +                  ieee80211_parse_edca_params(ic, edcaie) == 0) ||
> +                 (wmmie != NULL &&
> +                  ieee80211_parse_wmm_params(ic, wmmie) == 0))
> +                     ni->ni_flags |= IEEE80211_NODE_QOS;
> +             else
> +                     ni->ni_flags &= ~IEEE80211_NODE_QOS;

I like the code unification but I find a bit confusing that
IEEE80211_NODE_QOS is checked/set twice.

What should a client do if QoS has been negotiated during
association and then the kernel fails tp parse EDCA/WMMIE
params?  Is it correct to unset IEEE80211_NODE_QOS here? 

But I don't think this should prevent you from committing this.
You have my ok.

Reply via email to