kernel-ark/drivers
Jeff Mahoney 59f1741e54 [TG3]: netif_carrier_off runs too early; could still be queued when init fails
Move 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 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.

[ Based upon feedback from Michael Chan, we move netif_carrier_off()
  to the end of tg3_init_one() instead of moving it to tg3_open() -DaveM ]

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-03-20 22:39:21 -08:00
..
acorn
acpi
amba
atm [ATM] suni: cast arg properly in SONET_SETFRAMING 2006-03-20 22:35:16 -08:00
base
block
bluetooth
cdrom
char
connector
cpufreq
crypto
dio
edac
eisa
fc4
firmware
hwmon
i2c
ide
ieee1394
infiniband
input
isdn
macintosh
mca
md
media
message
mfd
misc
mmc
mtd
net [TG3]: netif_carrier_off runs too early; could still be queued when init fails 2006-03-20 22:39:21 -08:00
nubus
oprofile
parisc
parport
pci
pcmcia
pnp
rapidio
s390
sbus
scsi
serial
sh
sn
spi
tc
telephony
usb
video
w1
zorro
Kconfig
Makefile