kernel-ark/drivers
Michael Chan 469665459d [TG3]: Fix irq_sync race condition.
Gagan Arneja <gaagaan@gmail.com> pointed out that tg3_reset_task()
could potentially race with another thread calling tg3_full_lock()
such as the ethtool_set_xxx() functions.  This may trigger the
BUG_ON() in tg3_irq_quiesce() or cause the irq_sync flag to be out-
of-sync.

I think the easiest way to fix this is to get the tp->lock first
before setting the irq_sync flag.  This is safe to do because the
tp->lock is never grabbed by the irq handler.  This change will
guarantee that the irq_sync flag updates will be serialized.  We also
have to change one spot to call tg3_netif_start() (which clears the
irq_sync flag) before releasing the tp->lock.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-07-11 19:47:19 -07:00
..
acorn
acpi
amba
ata
atm
auxdisplay
base
block Merge branch 'splice-2.6.23' of git://git.kernel.dk/data/git/linux-2.6-block 2007-07-10 13:51:06 -07:00
bluetooth [Bluetooth] Remove the redundant non-seekable llseek method 2007-07-11 06:53:45 +02:00
cdrom
char sx: switch subven and subid values 2007-07-10 17:51:13 -07:00
clocksource
connector
cpufreq
crypto
dio
dma
edac
eisa
fc4
firewire
firmware
hid
hwmon
i2c
ide
ieee1394
infiniband
input
isdn
kvm
leds
macintosh
mca
md
media
message
mfd
misc
mmc
mtd
net [TG3]: Fix irq_sync race condition. 2007-07-11 19:47:19 -07:00
nubus
oprofile
parisc
parport
pci
pcmcia
pnp
power
ps3
rapidio
rtc
s390
sbus
scsi
serial
sh
sn
spi
tc
telephony
usb
video
w1
zorro
Kconfig Merge git://git.infradead.org/~dwmw2/battery-2.6 2007-07-10 14:47:59 -07:00
Makefile