matching (and handling) a whole device and those which match an
interface only. This will allow to enforce some rules, eg that
the former don't use interface information for matching or that the
latter don't modify global device state.
The previous way left too much freedom do the drivers which led to
inconsistencies and abuse.
For now, I've not changed locators and submatch rules, this will
happen later.
There should not be any change in behaviour, except in the case of
some drivers which did behave inconsistently:
if_atu, if_axe, uep: matched the configured device in the interface
stage, but did configuration again. I've converted them to match
in the device stage.
ustir, utoppy: matched in the interface stage, but only against
vendor/device information, and used any configuration/interface
without checking. Changed to match in device stage, and added
some simple code to configure and use the first interface.
If you have one of those devices, please test!
one for tasks of the host controllers. This is needed for drivers like
ural(4) that want to do synchronous USB transfers from the task handler.
Before the split timeouts could not be handled correctly as the task
thread was still blocked. From FreeBSD.
802.11 but wants this driver to work nonetheless...
o Support WEP encryption, hopefully fix PR kern/29324 from Andreas Gustafsson
o Correct ENETRESET reconfig while iface is already running
o Correct bpfilter usage
o Avoid leaking mbufs on failed TX
o Reset ieee80211 state to INIT and stop atu_task() on atu_stop()
o Don't stop interface on USB tx errs, just drop packet
o use IFQ_IS_EMPTY rather than check if_snd for NULL head