android_kernel_motorola_sm6225/drivers
Stefan Richter 3e98eab46d ieee1394: sbp2: safer initialization of status fifo
Sbp2's copy of the status fifo was cleared when management ORBs or new
command ORBs were prepared.  The latter had potential for a race
condition if the block layer's soft IRQ and the 1394 LLD's interrupt
handler ran on different CPUs.  It would also yield wrong status if a
command was completed with non-zero completion status before other
commands that had zero completion status, and no new command was
enqueued in the meantime.

Now, the status buffer is cleared right before it is written.  Thus it
ends up in the following simpler and safer access pattern:
 - sbp2_alloc_device: allocates and implicitly clears once,
 - sbp2_handle_status_write: clears, writes, and reads,
 - sbp2_query_logins, sbp2_login_device, sbp2_reconnect_device: read.
The latter three do not race with sbp2_handle_status_write because of
how the protocol works.

As a tiny optimization, the first two quadlets of the status never need
to be cleared.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2006-09-17 19:29:22 +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: safer initialization of status fifo 2006-09-17 19:29:22 +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