the wpi_scan_hdr structure when we can just put the wpi_cmd_data
structure within the wpi_scan_hdr structure.
This also brings our if_wpireg.h mostly in line with OpenBSD's 1.18.
--- getifaddrs.o ---
In file included from /tmp/bracket/build/2014.07.01.10.35.18-i386/src/lib/libc/net/getifaddrs.c:39:0:
/tmp/bracket/build/2014.07.01.10.35.18-i386/src/sys/net/if.h:208:2: error: unknown type name 'kmutex_t'
kmutex_t *ifq_lock;
^
fact more consistent, and more flexible (eg if we want to add new fields).
2) When I say "page" I actually mean "kmem page". It may not be clear, so
replace it by "memory chunk" (suggested by lars@).
3) Minor changes for KMEM_REDZONE.
- Make it MPSAFE only when NET_MPSAFE
- otherwise, its instructions are almost same as before
- the only change is IFQ_POLL/IFQ_DEQUEUE which
is now single IFQ_DEQUEUE
- Protect driver operations with a lock
- further work would make it separate
- Apply MPSAFE flag to
- callout_init
- pci_intr_establish
- Stop proceeding packets when the driver is likely
to stop for graceful ifconfig down
Tested on Rangeley (I354) and KVM (e1000)
Reviewed by msaitoh@
- Introduce NET_MPSAFE
- not defined by default
- Add ifq_lock to protect ifnet#if_snd
- Initialize ifq_lock and lock IFQ operations
when NET_MPSAFE
When NET_MPSAFE isn't defined, this modification
doesn't change its behavior and adds trivial
performance overheads.
Discussed with matt@ on tech-net
nd6_dad_start uses callout when xtick > 0 while doesn't when
xtick == 0. So if we pass a random value ranging from 0 to N,
nd6_dad_start uses callout randomly. This behavior makes
debugging difficult.
Discussed in http://mail-index.netbsd.org/tech-kern/2014/06/25/msg017278.html
abuse of pointer to struct mbuf type.
param2 changed to u_long type and uses parameter name 'cmd' (ioctl command)
param3 changed to void * type and uses parameter name 'data'
param4 changed to struct ifnet * and uses parameter name 'ifp'
param5 has been removed (formerly struct lwp *) and uses of 'l' have been
replaced with curlwp from curproc(9).
callers have had (now unnecessary) casts to struct mbuf * removed, called
code has had (now unnecessary) casts to u_long, void * and struct ifnet *
respectively removed.
reviewed by rmind@