linux/drivers
Matt Carlson db21997379 tg3: Schedule at most one tg3_reset_task run
It is possible for multiple threads in the tg3 driver to each attempt to
schedule a run of tg3_reset_task().  The multiple tg3_reset_task
executions could all wind up on the same queue (and execute serially) or
wind up on the queues of another processor (which could execute in
parallel).  Either scenario is not what was truly desired.

This patch adds a new flag, TG3_FLAG_RESET_TASK_PENDING, and uses it to
determine whether or not to schedule another run of tg3_reset_task().
With the new flag comes two new functions to facilitate scheduling and
descheduling of tg3_reset_task().

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Reviewed-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2011-11-04 17:31:48 -04:00
..
accessibility
acpi Merge branch 'pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux 2011-11-01 10:52:29 -07:00
amba
ata ahci: add DT binding for Calxeda AHCI controller 2011-11-03 15:52:38 -05:00
atm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2011-10-25 13:25:22 +02:00
auxdisplay
base Merge branch 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm 2011-10-25 15:18:39 +02:00
bcma
block virtio-blk: use ida to allocate disk index 2011-11-02 11:41:02 +10:30
bluetooth Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/padovan/bluetooth 2011-11-02 15:15:51 -04:00
cdrom
char Merge branch 'misc-3.2' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux 2011-11-02 16:52:17 -07:00
clk
clocksource Merge branch 'next/timer' of git://git.linaro.org/people/arnd/arm-soc 2011-11-01 20:18:05 -07:00
connector
cpufreq Merge branch 'next' of git://github.com/kernelslacker/cpufreq 2011-11-03 09:59:39 -07:00
cpuidle
crypto crypto: talitos - handle descriptor not found in error path 2011-10-21 15:20:28 +02:00
dca
devfreq
dio
dma [media] dmaengine: ipu-idmac: add support for the DMA_PAUSE control 2011-11-03 18:28:33 -02:00
edac edac: Only build sb_edac on 64-bit 2011-11-03 11:22:44 -07:00
eisa
firewire firewire: ohci: fix isochronous DMA synchronization 2011-10-18 12:32:39 +02:00
firmware Merge branch 'pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux 2011-11-01 10:52:29 -07:00
gpio Merge branch 'for-next' of git://git.infradead.org/users/sameo/mfd-2.6 2011-11-03 09:40:51 -07:00
gpu Merge branch 'drm-core-next' of git://people.freedesktop.org/~airlied/linux 2011-10-28 05:54:23 -07:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2011-11-03 07:53:22 -07:00
hv
hwmon hwmon: (w83627ehf) Add support for the W83627UHG 2011-11-04 12:00:48 +01:00
hwspinlock
i2c Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2011-11-03 13:28:14 -07:00
ide Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2011-11-03 13:28:14 -07:00
idle
ieee802154
infiniband Merge branches 'iser', 'mthca' and 'qib' into for-next 2011-11-04 09:36:04 -07:00
input Merge branch 'for-next' of git://git.infradead.org/users/sameo/mfd-2.6 2011-11-03 09:40:51 -07:00
iommu Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu 2011-10-30 15:46:19 -07:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-11-03 21:05:43 -07:00
leds Merge branch 'for-next' of git://git.infradead.org/users/sameo/mfd-2.6 2011-11-03 09:40:51 -07:00
lguest lguest: move process freezing before pending signals check 2011-10-27 10:56:18 +10:30
macintosh
mca
md Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/linux-dm 2011-11-02 17:02:37 -07:00
media Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2011-11-04 07:58:25 -07:00
memstick
message
mfd Merge branch 'for-next' of git://git.infradead.org/users/sameo/mfd-2.6 2011-11-03 09:40:51 -07:00
misc drivers/misc/vmw_balloon.c: fix typo in code comment 2011-11-02 16:07:03 -07:00
mmc Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2011-11-03 13:28:14 -07:00
mtd Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2011-11-03 13:28:14 -07:00
net tg3: Schedule at most one tg3_reset_task run 2011-11-04 17:31:48 -04:00
nfc
nubus
of dt/platform: minor cleanup 2011-11-03 15:49:24 -05:00
oprofile
parisc
parport parport_pc: release IO region properly if unsupported ITE887x card is found 2011-10-18 14:17:40 -07:00
pci Merge branch 'next-rebase' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2011-10-28 14:20:44 -07:00
pcmcia Merge branch 'next/fixes' of git://git.linaro.org/people/arnd/arm-soc 2011-11-01 19:55:06 -07:00
pinctrl pinctrl/sirf: fix sirfsoc_get_group_pins prototype 2011-10-25 10:43:57 +02:00
platform Merge branch 'akpm' (Andrew's incoming) 2011-10-31 17:46:07 -07:00
pnp
power Merge branch 'akpm' (Andrew's incoming - part two) 2011-11-02 16:07:27 -07:00
pps pps gpio client: add missing dependency 2011-11-02 16:07:02 -07:00
ps3
ptp
rapidio RapidIO: fix potential null deref in rio_setup_device() 2011-11-02 16:07:01 -07:00
regulator Merge branch 'for-next' of git://git.infradead.org/users/sameo/mfd-2.6 2011-11-03 09:40:51 -07:00
rtc Merge branch 'akpm' (Andrew's incoming - part two) 2011-11-02 16:07:27 -07:00
s390 [S390] qdio: prevent dsci access without adapter interrupts 2011-10-30 15:16:47 +01:00
sbus
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2011-10-28 16:44:18 -07:00
sfi
sh sh: userimask.c needs linux/stat.h 2011-10-28 15:03:54 +09:00
sn
spi Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2011-11-03 13:28:14 -07:00
ssb
staging Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2011-11-04 07:58:25 -07:00
target Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-10-25 12:11:02 +02:00
tc
telephony
thermal
tty Merge branch 'for-linus' of git://github.com/richardweinberger/linux 2011-11-02 09:45:39 -07:00
uio uio: Support physical addresses >32 bits on 32-bit systems 2011-10-18 11:18:57 -07:00
usb Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2011-11-03 13:28:14 -07:00
uwb
vhost
video Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2011-11-03 13:28:14 -07:00
virt
virtio virtio: Add platform bus driver for memory mapped virtio device 2011-11-02 11:41:01 +10:30
vlynq
w1 w1: disable irqs in critical section 2011-11-02 16:07:03 -07:00
watchdog Merge branch 'for-linus' of git://github.com/richardweinberger/linux 2011-11-02 09:45:39 -07:00
xen Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2011-10-26 16:44:09 +02:00
zorro zorro: Fix four checkpatch warnings 2011-10-24 21:00:34 +02:00
Kconfig Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging 2011-10-26 15:39:02 +02:00
Makefile Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging 2011-10-26 15:39:02 +02:00