devd and 802.11
Bernhard Schmidt
bschmidt at freebsd.org
Wed Jan 5 20:51:49 UTC 2011
Hi,
While working on the 'netif restart' issue (kern/153594) I noticed that there
are to entries in devd.conf with shady usefulness.
detach 0 {
media-type "802.11";
action "/etc/pccard_ether $device-name stop";
};
attach 0 {
media-type "802.11";
action "/etc/pccard_ether $device-name start";
};
I assume that the general use-case for devd is to automatically configure
wireless devices as soon as those are plugged in (PCMCIA, ..). Those are
already handled by
notify 0 {
match "system" "IFNET";
match "type" "ATTACH";
action "/etc/pccard_ether $subsystem start";
};
this will invoke netif which then will create and configure the wlan0 device.
While wlan0 is created, devd is poked again and this time the other rule kicks
in and starts netif again. This effectively results in 2 'netif start wlan0'
calls. Due to the racy nature of this all tries to ensure wpa_supplicant has
exclusive access to the wlan device fail, wpa_supplicant gets started twice
and each instance is fighting for ownership.
That devd entries a quite old (pre-VAP), the media-type might have changed and
this was just overlooked, so, I did some tests to figure out if those are
really necessary. After removing the 2 entries, I tried 3 things:
- plug in PCMCIA card while system is up
- remove PCMCIA device while system is up
- kldunload if_drv; kldload if_drv
in both cases, the wireless device was configure according to the settings in
rc.conf. Also, cleaning up after kldunload or removal of the device worked as
expected.
If I'm not missing an use-case here (pointers?) and there are no complains,
the attached diff is worth being committed.
--
Bernhard
-------------- next part --------------
A non-text attachment was scrubbed...
Name: devd-80211.diff
Type: text/x-patch
Size: 508 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-net/attachments/20110105/37c1c751/devd-80211.bin
More information about the freebsd-net
mailing list