In SIOCS80211SCAN, fail if the interface is not up *and* running. There are cases where the interface can be up but not running, for instance if the driver's if_init routine fails halfway for whatever reason (firmware file not found, hardware switch turned off etc...) This is because in sys/net/if.c, the returned code of the driver is ignored for SIOCSIFFLAGS and the IFF_UP flags is left set. netintro(4) does not say anything about values returned by SIOCSIFFLAGS, so I don't know whether it is the expected behavior or not.
In SIOCS80211SCAN, fail if the interface is not up *and* running.
There are cases where the interface can be up but not running, for
instance if the driver's if_init routine fails halfway for whatever
reason (firmware file not found, hardware switch turned off etc...)
This is because in sys/net/if.c, the returned code of the driver
is ignored for SIOCSIFFLAGS and the IFF_UP flags is left set.
netintro(4) does not say anything about values returned by
SIOCSIFFLAGS, so I don't know whether it is the expected behavior
or not.

pointed out by halex@ and jacekm@ who noticed it was possible to
trigger a scan on wpi(4) even when the hardware switch was turned off.

orumin/openbsd-efivars,orumin/openbsd-efivars,orumin/openbsd-efivars,orumin/openbsd-efivars