On Fri, 2014-11-14 at 10:02 -0600, Dan Williams wrote:
> On Fri, 2014-11-14 at 16:02 +0900, Marcel Holtmann wrote:
> > Hi Dan,
> > 
> > >>>> I've updated wireless code on RHEL and get complain that now
> > >>>> cfg80211 and rfkill modules are loaded on machines that do not have
> > >>>> wireless hardware. Modules are auto-loaded because NetworkManager send
> > >>>> nl80211 messages to check if there are wireless devices in the system.
> > >>>> 
> > >>>> Hence my question, can we revert commit fb4e156886ce
> > >>>> "nl80211: Add generic netlink module alias for cfg80211/nl80211" ?
> > >>> 
> > >>> Realistically, we can't revert it, but only remove the
> > >>> MODULE_ALIAS_GENL_FAMILY() line.
> > >>> 
> > >>>> Auto loading nl80211 does not seems to be necessary, if there are
> > >>>> wireless devices nl80211 will be loaded anyway.
> > >>> 
> > >>> Maybe other applications would like to see an empty list of devices? But
> > >>> OTOH, if they're robust at all, they have to cope with kernels not even
> > >>> compiled with nl80211, so I guess for me I don't really see a big
> > >>> difference in whether the module alias exists or not.
> > >> 
> > >> auto-loading cfg80211 module when userspace requests nl80211 netlink 
> > >> family is exactly the right thing to do. Systems compiled without 
> > >> nl80211 support and systems with no wireless device attached are two 
> > >> different things.
> > >> 
> > >> Someone can fix NetworkManager to not send nl80211 messages or just 
> > >> plain accept that cfg80211 will be loaded.
> > > 
> > > NM uses nl80211 initially to determine whether *any* ethernet-type
> > > interface (a) is actually WiFi, and (b) should be driven by nl80211 or
> > > WEXT.  Because of the variety of drivers (both in-kernel and
> > > out-of-kernel) and the variety of kernel versions (NM supports back to
> > > early 3.x series) we cannot rely on specific behavior.
> > > 
> > > So given an ethernet-type interface, how do we determine that it is
> > > wifi?
> > > 
> > > DEVTYPE=wlan - not always reliable due to driver and kernel versions
> > 
> > if anybody wants to write kernel patches, then making sure that all 
> > wireless drivers expose DEVTYPE=wlan is the way to go. If for some reason a 
> > driver does not do it, that is a bug.
> 
> Yeah, that's nice, and should be done.  It seems a number of drivers
> don't have it.  Obviously everything mac80211 does, and it seems we're
> left with:
> 
> 1) legacy drivers that only support WEXT (airo, etc)
> 2) out-of-tree drivers (wl.o and various realtek/ralink stuff?)
> 
> So it seems that new best practice is:
> 
> a) if DEVTYPE=wlan, hit up nl80211 to determine whether the interface
> supports nl80211 or WEXT (minimal cfg80211 ports like ipw2x00 don't
> actually support nl80211 at all and must use WEXT)
> 
> b) if DEVTYPE is missing, WEXT can be tried if it is available
> 
> c) treat interface as 'ethernet'; out-of-tree WiFi drivers may end up
> here but that is life
> 
> Does that sound valid to everyone else?

Potential NM fix filed at:

https://bugzilla.gnome.org/show_bug.cgi?id=740131

Dan

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to