Subject: Re: Kernel v3.0.8 igb driver dies when pulling network cable

From: Stefan Priebe - Profihost AG <[email-masked]>
Date: Wed, 23 Nov 2011 07:15:40 +0100

Hi Alex,

> It seems like there might be an issue with something specific to your
> board since I tried reproducing the issue here on an 82576 based adapter
> and the stable 3.0.9 kernel I have and I have not had much success.
but as it is working fine with the up2date igb module - it still was 
fixed ;-)

To reproduce try the following (gave me 100% success rate). Configure 
eth0 to DHCP, leave eth1 unconfigured.
Boot the system with lan cable plugged into eth1 !!
When the boot has finished switch the LAN cable from eth1 to eth0.

> I'm assuming the device that is failing is eth0.  I was wondering if you
> could send me the output of the following three commands so that I can
> do some further work to try and isolate the root cause for this issue:
> ethtool eth0
> ethtool -e eth0
> grep eth0 /proc/interrupts

Will send them as soon i have access to the machine again.

> The issue seems to be that your adapter is not detecting that the cable
> was unplugged.  This in turn is leaving stale packets on the Tx ring and
> is what is resulting in the dev_watchdog message you are seeing.
Are you sure? Cause when you look at the dmesg you'll see this:

igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX

ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

STACKTRACE!

igb 0000:0a:00.0: eth0: Reset adapter

eth0: no IPv6 routers present

igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX

igb 0000:0a:00.0: eth0: Reset adapter

igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX

So it happens when the cable is plugged in and NOT when i unplug it.

Stefan