compatibility with the older ioctls. This avoids stack smashing and
abuse of "struct sockaddr" when ioctls placed "struct sockaddr_foo's" that
were longer than "struct sockaddr".
XXX: Some of the emulations might be broken; I tried to add code for
them but I did not test them.
malloc_type M_IFADDR and freed with malloc_type M_DEVBUF. This
causes a panic(9) in DIAGNOSTIC kernels. Add malloc_type M_IFMEDIA
and use it for both malloc'ing and free'ing ifmedia_entrys.
some problem setting the media to the requested value (usually IFM_AUTO),
we now force the media selection to IFM_NONE.
This addresses PR/14029 ``panic("ifmedia_set") a little too brutal''
and may address to some degree PR/19504 and PR/23341.
matching instance rather than the last one. this restores the behaviour
in the multiple-match case to what it was when all the drivers only allowed
instance 0 (and in particular, makes autonegotiation of the on-board fxp
on my DK440LX board work again by default, which has two PHYs that both
advertise "auto"). as discussed on tech-net.
select the current medium, (and it is not autoselect), assume no change and
do not try to select the medium. Fixes 'ifconfig le0 medium 10base5' on sparc2
without requiring a 'do nothing' mediachange callback.
Jonathan Stone and myself. Many thanks to Matt Thomas for providing
the information necessary to implement this interface, and for helping
to shake out the bugs.