freebsd-dev/sys/dev/fxp
Pyun YongHyeon 5506afef17 Avoid unnecessary controller reinitialization by checking driver
running state.  fxp(4) requires controller reinitialization for the
following cases.
 o RX lockup condition on i82557
 o promiscuous mode change
 o multicast filter change
 o WOL configuration
 o TSO/VLAN hardware tagging/checksum offloading configuration
 o MAC reprogramming after speed/duplex/flow-control resolution
 o Any events that result in MAC reprogramming(link UP/DOWN,
   remote link partner's restart of auto-negotiation etc)
 o Microcode loading/unloading
Apart from above cases which come from hardware limitation, upper
stack also blindly reinitializes controller whenever an IP address
is assigned. After r194573, fxp(4) no longer needs to reinitialize
the controller to program multicast filter after upping the
interface. So keeping track of driver running state should remove
all unnecessary controller reinitializations.

This change will also address endless controller reinitialization
triggered by dhclient(8).

Tested by:	hrs, Alban Hertroys <haramrae@gmail.com>
2013-06-10 07:31:49 +00:00
..
if_fxp.c Avoid unnecessary controller reinitialization by checking driver 2013-06-10 07:31:49 +00:00
if_fxpreg.h
if_fxpvar.h
inphy.c
inphyreg.h
rcvbundl.h