linux-sg2042/drivers
Matt Carlson 624f8e5082 tg3: Allow screaming interrupt detection
The tg3 driver's ISR is coded to accept interrupts as its own if the
status block tag does not equal the last tag the driver has seen.  The
last_tag field is updated from tg3_poll.  In a screaming interrupt
situation from another device sharing tg3's IRQ, tg3_poll does not get
a chance to be called, so the last_tag will always be out of sync with
the status block tag.  Consequently, the driver will continually
declare the screaming interrupts as its own, thus thwarting the
screaming interrupt detection logic.

This patch solves the problem by creating a new last_irq_tag member and
recording the status block tag in the ISR.  The ISR then checks the
last_irq_tag for interrupt ownership.

Many thanks to John Marvin for the detailed bug report and analysis and
Michael Chan for the bugfix.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Tested-by: John Marvin <jsm@fc.hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-04-21 01:41:00 -07:00
..
accessibility
acpi Revert "ACPI battery: fix async boot oops" 2009-04-11 12:45:20 -07:00
amba
ata ata: fix obviously wrong comment 2009-04-13 04:22:04 -04:00
atm dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
auxdisplay auxdisplay: remove PARPORT dependency 2009-04-01 08:59:17 -07:00
base dma-mapping: replace all DMA_24BIT_MASK macro with DMA_BIT_MASK(24) 2009-04-07 08:31:12 -07:00
block xsysace: Fix dereferencing of cf_id after hd_driveid removal 2009-04-08 14:13:04 +02:00
bluetooth
cdrom
char esp: fix section mismatch warning 2009-04-07 08:31:03 -07:00
clocksource clocksource: sh_cmt: use remove_irq() and remove clockevent workaround 2009-04-02 11:18:48 +09:00
connector
cpufreq
cpuidle
crypto dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
dca
dio
dma dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
edac edac: AMD8111 driver Kconfig & Makefile 2009-04-02 19:05:04 -07:00
eisa
firewire
firmware dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
gpio Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-04-03 15:24:35 -07:00
gpu Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2009-04-03 15:25:44 -07:00
hwmon Merge branch 'hwmon-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6 2009-04-07 08:44:43 -07:00
i2c i2c: Let new-style drivers implement attach_adapter 2009-04-13 17:02:14 +02:00
ide at91_ide: turn on PIO 6 support 2009-04-08 14:13:04 +02:00
idle dma-mapping: replace all DMA_64BIT_MASK macro with DMA_BIT_MASK(64) 2009-04-07 08:31:10 -07:00
ieee1394 dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
infiniband Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2009-04-09 16:42:26 -07:00
input Merge branch 'next' into for-linus 2009-04-08 00:00:33 -07:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-04-06 18:05:43 -07:00
leds leds: just ignore invalid GPIOs in leds-gpio 2009-04-08 14:13:48 +01:00
lguest
macintosh
mca
md dm kcopyd: fix callback race 2009-04-09 00:27:17 +01:00
media Merge git://git.infradead.org/~dwmw2/firmware-2.6 2009-04-10 12:01:22 -07:00
memstick dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
message dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
mfd mfd: fix da903x warning 2009-04-05 00:32:25 +02:00
misc dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
mmc mmc_spi: support for non-byte-aligned cards 2009-04-08 20:45:51 +02:00
mtd Merge branch 'linux-next' of git://git.infradead.org/ubi-2.6 2009-04-06 15:00:00 -07:00
net tg3: Allow screaming interrupt detection 2009-04-21 01:41:00 -07:00
nubus
of powerpc: add mmc-spi-slot bindings 2009-04-01 08:59:23 -07:00
oprofile Merge branch 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-04-05 11:04:19 -07:00
parisc parisc: drivers: fix warnings 2009-04-02 00:40:41 +00:00
parport parport: Use the PCI IRQ if offered 2009-04-07 08:44:06 -07:00
pci Merge git://git.infradead.org/iommu-2.6 2009-04-13 11:35:50 -07:00
pcmcia [ARM] 5442/1: pxa/cm-x255: fix reverse RDY gpios in PCMCIA driver 2009-04-02 11:02:32 +01:00
platform Merge branches 'release', 'APERF', 'ARAT', 'misc', 'kelvin', 'device-lock' and 'bjorn.notify' into release 2009-04-07 18:18:42 -04:00
pnp dma-mapping: replace all DMA_24BIT_MASK macro with DMA_BIT_MASK(24) 2009-04-07 08:31:12 -07:00
power Merge git://git.infradead.org/battery-2.6 2009-04-08 17:45:02 -07:00
ps3
rapidio dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
regulator regulator: twl4030 VAUX3 supports 3.0V 2009-03-31 11:29:54 +01:00
rtc Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 2009-04-05 11:15:54 -07:00
s390 workqueue: add to_delayed_work() helper function 2009-04-02 19:04:50 -07:00
sbus
scsi PM/Hibernate: Wait for SCSI devices scan to complete during resume 2009-04-13 11:37:07 -07:00
serial Merge branch 'for-linus' of git://git.monstr.eu/linux-2.6-microblaze 2009-04-13 08:17:52 -07:00
sh sh: intc: set_irq_wake() support 2009-04-02 11:19:57 +09:00
sn dma-mapping: replace all DMA_64BIT_MASK macro with DMA_BIT_MASK(64) 2009-04-07 08:31:10 -07:00
spi spi_imx: set spi_master.dma_alignment = 4 2009-04-07 08:31:07 -07:00
ssb
staging serqt: initial clean up pass for tty side 2009-04-07 08:44:05 -07:00
tc
telephony
thermal
uio
usb Merge master.kernel.org:/home/rmk/linux-2.6-arm 2009-04-08 15:24:09 -07:00
uwb dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
video fbdev: i.MX31: fix panning, error handling, clean up 2009-04-07 08:31:09 -07:00
virtio
w1 mfd: remove DS1WM clock handling 2009-04-05 00:32:22 +02:00
watchdog [WATCHDOG] omap_wdt.c: move probe function to .devinit.text 2009-04-08 06:21:57 +00:00
xen Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask 2009-04-05 10:33:07 -07:00
zorro
Kconfig
Makefile