Broadcom NIC looses mii settings if reset_task() is called in tg3 driver. tg3_tx_timeout() calls reset_task as a watchdog function when the driver thinks the card is blotto. This will result in failed port negotiation and a port mismatch if switch port is forced 100/full. Everyone seems to set their switches to 100/full due to crappy Sun hme drivers/cards and old buggy intel drivers under NT. The place I work is no exception. All our switch ports are set to 100/full. I know this is stupid but what can one person do? The advice on this list is usually to use ethtool / mii-tool to force 100/full in some init script (which is what I do from /etc/init.d/network after ifup). However, if at any point the driver should find the card in a timeout state, a watchdog function will be called and any settings made with mii-tool or ethtool will be lost. You'll see a kernel error message in the logs like this: Sep 3 11:59:40 toon15 kernel: tg3: eth1: transmit timed out, resetting Shouldn't the tg3 driver restore the previous mii_if_info or something when the card is watchdog reset? Why is tg3_tx_timeout() called so often? Does loading the module with params to force 100/full not result in loss of setting when reset? This happens about once every 14 days or so on a loaded system that has a broadcom chip on board. We run all Compaq/HP DLxxx G2/3, x86 hardware, which all come with a pair of broadcom chips onboard. It would be great if in the next version of the tg3 driver, all the possible module parameters were documented. Maybe even printed from modinfo? PS: As a side effect, when the tg3 NIC is reset, the switch port goes into a listen state for about 30 seconds to make sure it's not a trunk port. This results in no network traffic for 30 seconds, regardless of port negotiation. At least this is the case on Cisco switches when spantree portfast isn't enabled (the default). This is an issue if you use mii-tool or ethtool to set anything before NFS mounting as the initial RPC packets will quietly be dropped and nfs mounts will fail with random errors based on timing.