Date: Tue, 19 May 2020 16:11:19 -0700 From: Adrian Chadd <adrian.chadd@gmail.com> To: Andriy Gapon <avg@freebsd.org> Cc: "freebsd-wireless@freebsd.org" <wireless@freebsd.org> Subject: Re: iwm rfkill Message-ID: <CAJ-Vmo=gXH9yRZBoY4vBJmJgP5F_du%2BCkYRcYPmaNuM75cxB3Q@mail.gmail.com> In-Reply-To: <eebda8cc-b61e-1f53-f124-5217d51f6fc0@FreeBSD.org> References: <15021eed-2d82-5391-0edc-8d328e3ba31d@FreeBSD.org> <CAJ-VmonCxXxS-6WD=mxW1gdazZXHAyYdhTF9LrT%2BaqUrksR14g@mail.gmail.com> <9d55db0d-fe7a-2695-ac3e-6668eab43622@FreeBSD.org> <eebda8cc-b61e-1f53-f124-5217d51f6fc0@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 19 May 2020 at 16:07, Andriy Gapon <avg@freebsd.org> wrote: > > > > Adrian, thank you very much for your suggestion. > > Being a complete noob in this area, this is my stab at it: > > https://reviews.freebsd.org/D24923 > > Also, I see that there is some friction between how rfkill is handled at the > driver / kernel level and how it gets (or doesn't get) known to userland. > First, at least Intel wireless drivers use ieee80211_suspend_all / > ieee80211_resume_all KPI when handling rfkill. Those calls end up clearing or > setting IFF_DRV_RUNNING while userland mostly checks for IFF_UP. But that's not > an issue actually -- I think that it's userland code that needs fixing. The > issue is that the IFF_DRV_RUNNING changes become known to userland only by > accident if at all. Ha! Ok. > > Specifically, if we consider wpa_supplicant, it listens for notifications coming > via PF_ROUTE socket such as RTM_IFINFO. So, wpa_supplicant depends on (a) a > notification getting generated in the first place; (b) the notification > conveying correct information about an interface's state. > As far as I can tell, net80211 layer does not try to do either of the above. > E.g., in the case of ieee80211_stop_locked there is an RTM_IFINFO notification > because of a link status change, but that notification by the state change > that's performed before IFF_DRV_RUNNING is cleared. > In the case of ieee80211_start_locked the situation is even worse. > > I wonder if ieee80211 should explicitly use rt_ifmsg() to post right > notifications at right times. > FWIW, I already have a patch for that and it seems to work. Yes. :-) Let's get that in too. -a > > > -- > Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmo=gXH9yRZBoY4vBJmJgP5F_du%2BCkYRcYPmaNuM75cxB3Q>