On Thu, 2014-11-13 at 22:41 +0900, Marcel Holtmann wrote: > Hi Johannes, > > >> 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 "phy80211" in sysfs: same reason; also doesn't capture WEXT or out-of-tree drivers nl80211 calls: this is the only 100% reliable mechanism to detect whether an ethernet-type interface is actually WiFi and nl80211-capable. And unfortunately calling nl80211 loads the module... 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
