linux-pinenote/drivers
Stefan Richter 09ee67abe9 ieee1394: sbp2: handle "sbp2util_node_write_no_wait failed"
Fix for http://bugzilla.kernel.org/show_bug.cgi?id=6948

Because sbp2 writes to the target's fetch agent's registers from within
atomic context, it cannot sleep to guaranteedly get a free transaction
label.  This may repeatedly lead to "sbp2util_node_write_no_wait failed"
and consequently to SCSI command abortion after timeout.  A likely cause
is that many queue_command softirqs may occur before khpsbpkt (the
ieee1394 driver's thread which cleans up after finished transactions) is
woken up to recycle tlabels.

Sbp2 now schedules a workqueue job whenever sbp2_link_orb_command fails
in sbp2util_node_write_no_wait.  The job will reliably get a transaction
label because it can sleep.

We use the kernel-wide shared workqueue because it is unlikely that the
job itself actually needs to sleep.  In the improbable case that it has
to sleep, it doesn't need to sleep long since the standard transaction
timeout is 100ms.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2006-09-17 19:34:14 +02:00
..
acorn [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
acpi Merge trivial low-risk suspend hotkey bugzilla-5918 into release 2006-08-20 21:49:29 -04:00
amba
atm [ATM]: Typo in drivers/atm/Kconfig... 2006-07-08 13:30:09 -07:00
base [PATCH] /proc/meminfo: don't put spaces in names 2006-08-27 11:01:33 -07:00
block [PATCH] cciss: version update, new hw 2006-09-13 07:32:16 -07:00
bluetooth [Bluetooth] Enable SCO support for Broadcom HID proxy dongle 2006-07-24 12:44:34 -07:00
cdrom [PATCH] cdrom/gdsc: fix printk format warning 2006-08-27 11:01:33 -07:00
char [PATCH] IPMI: fix handling of OEM flags 2006-09-16 12:54:31 -07:00
clocksource
connector [PATCH] Process Events: Fix biarch compatibility issue. use __u64 timestamp 2006-07-31 13:28:36 -07:00
cpufreq [CPUFREQ] [2/2] demand load governor modules. 2006-07-31 18:37:06 -04:00
crypto [CRYPTO] padlock: Fix alignment after aes_ctx rearrange 2006-07-15 11:08:50 +10:00
dio
dma [I/OAT]: Remove pci_module_init() from Intel I/OAT DMA engine 2006-07-21 14:50:13 -07:00
edac [PATCH] drivers/edac/edac_mc.h must #include <linux/platform_device.h> 2006-08-06 08:57:46 -07:00
eisa Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
fc4 [SCSI] More buffer->request_buffer changes 2006-07-14 09:41:13 -05:00
firmware Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
hwmon [PATCH] hwmon: abituguru timeout fixes 2006-08-26 13:05:19 -07:00
i2c [PATCH] i2c: tps65010 build fixes 2006-08-26 13:05:12 -07:00
ide [PATCH] alim15x3.c: M5229 (rev c8) support for DMA cd-writer 2006-09-13 07:32:14 -07:00
ieee1394 ieee1394: sbp2: handle "sbp2util_node_write_no_wait failed" 2006-09-17 19:34:14 +02:00
infiniband RDMA/cma: Increase the IB CM retry count in CMA 2006-09-14 13:55:30 -07:00
input Input: psmouse - fix Intellimouse 4.0 initialization 2006-08-23 00:48:03 -04:00
isdn [PATCH] eicon: fix define conflict with ptrace 2006-08-06 08:57:48 -07:00
leds [PATCH] net48xx LED cleanups 2006-07-14 21:53:54 -07:00
macintosh [PATCH] backlight last round of fixes 2006-09-01 11:39:10 -07:00
mca
md [PATCH] md: Fix issues with referencing rdev in md/raid1 2006-09-01 11:39:08 -07:00
media V4L/DVB (4608c): Fix I2C dependencies for saa7146 modules 2006-09-10 13:46:01 -03:00
message [SCSI] mptfc: correct out of order event processing 2006-08-06 15:48:31 -05:00
mfd [ARM] 3727/1: fix ucb initialization on collie 2006-07-11 22:54:15 +01:00
misc [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
mmc [MMC] Always use a sector size of 512 bytes 2006-09-07 16:01:30 +01:00
mtd [PATCH] MTD NAND: OOB buffer offset fixups 2006-09-16 12:54:32 -07:00
net [PATCH] mv643xx_eth: Unmap DMA buffers in receive path 2006-09-13 12:26:03 -04:00
nubus Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
oprofile
parisc [PATCH] irq-flags: PARISC: Use the new IRQF_ constants 2006-07-02 13:58:52 -07:00
parport [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
pci USB: Add VIA quirk fixup for VT8235 usb2 2006-08-31 18:04:30 -07:00
pcmcia [PATCH] pcmcia: fix ioctl GET_CONFIGURATION_INFO for pcmcia_cards 2006-07-31 13:28:41 -07:00
pnp [PATCH] pnpacpi: reject ACPI_PRODUCER resources 2006-08-06 08:57:49 -07:00
rapidio Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
rtc [PATCH] rtc-s3c.c: fix time setting checks 2006-08-27 11:01:28 -07:00
s390 [PATCH] s390: qeth driver fixes [6/6] 2006-09-17 01:03:08 -04:00
sbus [SPARC] sbus: Make sure sbus nodes are named uniquely. 2006-07-21 14:18:06 -07:00
scsi [PATCH] SCSI: lockdep annotation in scsi_send_eh_cmnd 2006-09-13 07:32:14 -07:00
serial sh64: Trivial build fixes. 2006-09-12 14:36:46 +09:00
sh
sn [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
spi [PATCH] lockdep: annotate on-stack completions 2006-07-03 15:27:09 -07:00
tc [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
telephony Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/devfs-2.6 2006-06-29 14:19:21 -07:00
usb USB: Fix unload oops and memory leak in yealink driver 2006-09-12 03:10:21 -07:00
video [PATCH] backlight last round of fixes 2006-09-01 11:39:10 -07:00
w1 [PATCH] w1: remove drivers/w1/w1.h 2006-07-12 15:38:28 -07:00
zorro Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
Kconfig
Makefile