Thread (6 messages) 6 messages, 3 authors, 2006-02-22

Re: [PATCH] tg3: netif_carrier_off runs too early; could still be queued when init fails

From: "David S. Miller" <davem@davemloft.net>
Date: 2006-02-21 21:40:04
Also in: lkml

From: "Michael Chan" <mchan@broadcom.com>
Date: Tue, 21 Feb 2006 08:44:20 -0800
On Mon, 2006-02-20 at 14:43 -0500, Jeff Mahoney wrote:
quoted
 This patch moves the netif_carrier_off() call from tg3_init_one()->
 tg3_init_link_config() to tg3_open() as is the convention for most
 other network drivers.
I think moving netif_carrier_off() later is the right thing to do. We
can also move it to the end of tg3_init_one() just before returning 0.
Agreed.
quoted
 I was getting a panic after a tg3 device failed to initialize due to DMA
 failure. The oops pointed to the link watch queue with spinlock debugging
 enabled. Without spinlock debugging, the Oops didn't occur.

 I suspect that the link event was getting queued but not executed until
 after the DMA test had failed and the device was freed. The link event
 was then operating on freed memory, which could contain anything. With this
 patch applied, the Oops no longer occurs. 
DMA test failed? What NIC device do you have? How did it fail?
I get this too with an old 5700 3COM card on sparc64.  I'll get
you some more detailed info later today, hopefully.

Jeff, please get some details for Michael about your failure
case.  Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help