error = (cmd == SIOCADDMULTI) ?
ether_addmulti(ifr, &sc->sc_ec) :
ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386
ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
identify sockaddr_dl abuse that remains in the kernel, especially
the potential for overwriting memory past the end of a sockaddr_dl
with, e.g., memcpy(LLADDR(), ...).
- Mostly sync with OpenBSD
- Serialise sending commands to the firmware
- Remove redundant calls to bpfdetach.
- use bus_size_t where appropriate and not fetch iobase as it's not
used.
- improve 802.11 radiotap support (correct rx rate)
- add short preamble flag
- add short slot time support
- ignore parity errors (as per the Linux driver)
- Set Tx power for all channels.
- disable bluetooth co-existance
- Check that ni->ni_rates.rs_nrates is not greater than the maximum
handled by the firmware.
- Begin syncing with the FreeBSD driver by renaming a few things.
- handle SIOCADDMULTI/SIOCDELMULTI properly, i.e. no need to reset
anything as we don't do multicast filters (yet)
- restructure some code and use an IS_RUNNING macro
Fix iwi_init to set if_flags before the net80211 state machine is kicked
and init to IEEE80211_S_INIT.
boards. Currently, only the associated LED is being used because
that's the only LED my card has. The other two LEDs (OFDM and
activity) can later be set by someone, easily, who owns some board
with that LEDs.
Reviewed by Nick Hudson.
- add some missing bus_dmamap_sync operations.
- don't process other interrupts if we get an error/radio off
interrupt.
- improve command handling - sleep against the descriptor instead
of the descriptor set.
blindly assuming MCLBYTES will DTRT.
- Use bus_dmamap_load_mbuf() instead of bus_dmamap_load() where
appropriate.
- If we have to coalesce a Tx mbuf chain comprised of more than IWI_MAX_NSEG
segments, allocate a cluster iff the payload won't fit in the header.
The change adopts the idea of fxp to drop the incoming packet and panic
if the old mbuf cannot be reloaded. Since the bus_dmamap is allocated
during attach, this is not supposed to happen. Since a lot of code moves
anyway, factor out the allocation of RX ring elements, which is shared
between the init path and the RX interrupt path.
XXX A better fix might be to borrow the mbuf from the logic end of the
XXX ring buffer, but that needs more involved driver changes.
Reviewed by dyoung@ and nick@
- don't disable/enable as we're already at splnet()
- ack the interrupts early
Fixes my "lost interrupt" problem.
Thanks to dyoung and scw for the suggestions.
it can fail all too easily. Instead bus_dmamap_load the cached copy and
create the command blocks for the device to load it accordingly.
Thanks to scw and mrg for reviewing this.
Closes PR 29892 (I hope).
Use the newer scan command as this one doesn't crash the firmware when
scanning 802.11a channels.
Thanks to scw and blymn for testing.
Closes PR 31295.