Roland Dreier
31d1e340f0
RDMA/nes: Remove volatile qualifier from struct nes_hw_cq.cq_vbase
...
Remove the volatile qualifier from the cq_vbase member of struct
nes_hw_cq, and add an rmb() in the one place where it looks like
access order might make a difference. As usual, removing a volatile
qualifier in a declaration is actually a bug fix, since a volatile
qualifier is not sufficient to make sure that aggressively
out-of-order CPUs don't reorder things and cause incorrect results.
For example, a CPU might speculatively execute reads of other cqe
fields before the NIC hardware has written those fields and before it
has set the NES_CQE_VALID bit (even though those reads come after the
test of the NES_CQE_VALID bit in program order), but then when the CPU
actually executes the conditional test of the NES_CQE_VALID, the bit
has been set, and the CPU will proceed with the results of the earlier
speculative execution and end up using bogus data.
This also gets rid of the warning:
drivers/infiniband/hw/nes/nes_verbs.c: In function 'nes_destroy_cq':
drivers/infiniband/hw/nes/nes_verbs.c:1978: warning: passing argument 3 of 'pci_free_consistent' discards qualifiers from pointer target type
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2008-04-23 11:55:45 -07:00
..
acorn /char
acpi
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/juhl/trivial
2008-04-21 16:36:46 -07:00
amba
ata
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6
2008-04-21 15:49:58 -07:00
atm
drivers/atm: use time_before, time_before_eq, etc
2008-04-19 18:14:50 -07:00
auxdisplay
base
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6
2008-04-21 15:49:58 -07:00
block
Merge branch 'for-2.6.26' of git://git.kernel.dk/linux-2.6-block
2008-04-21 16:03:40 -07:00
bluetooth
hci_usb: remove code obfuscation
2008-04-19 18:17:26 -07:00
cdrom
cdrom: use kmalloced buffers instead of buffers on stack
2008-04-21 09:50:08 +02:00
char
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/juhl/trivial
2008-04-21 16:36:46 -07:00
clocksource
connector
cpufreq
cpuidle
crypto
[CRYPTO] padlock-aes: Use generic setkey function
2008-04-21 10:19:34 +08:00
dca
dio
dma
DMA engine: typo fixes
2008-04-21 22:38:45 +00:00
edac
eisa
firewire
Convert asm/semaphore.h users to linux/semaphore.h
2008-04-18 22:22:54 -04:00
firmware
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6
2008-04-21 15:49:58 -07:00
gpio
hid
hwmon
i2c
Merge branch 'semaphore' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc
2008-04-21 15:41:27 -07:00
ide
cdrom: make unregister_cdrom() return void
2008-04-21 09:50:08 +02:00
ieee1394
Convert asm/semaphore.h users to linux/semaphore.h
2008-04-18 22:22:54 -04:00
infiniband
RDMA/nes: Remove volatile qualifier from struct nes_hw_cq.cq_vbase
2008-04-23 11:55:45 -07:00
input
Merge branch 'semaphore' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc
2008-04-21 15:41:27 -07:00
isdn
Merge branch 'irq-cleanups-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6
2008-04-21 15:56:19 -07:00
leds
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6
2008-04-21 15:49:58 -07:00
lguest
drivers: Remove unnecessary inclusions of asm/semaphore.h
2008-04-18 22:16:32 -04:00
macintosh
Convert asm/semaphore.h users to linux/semaphore.h
2008-04-18 22:22:54 -04:00
mca
md
RAID: remove trailing space from printk line
2008-04-21 22:42:58 +00:00
media
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/juhl/trivial
2008-04-21 16:36:46 -07:00
memstick
memstick: convert struct class_device to struct device
2008-04-19 19:10:29 -07:00
message
SCSI: convert struct class_device to struct device
2008-04-19 19:10:33 -07:00
mfd
Merge branch 'semaphore' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc
2008-04-21 15:41:27 -07:00
misc
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/juhl/trivial
2008-04-21 16:36:46 -07:00
mmc
mmc: sdio_ops.c should #include "sdio_ops.h"
2008-04-18 20:05:33 +02:00
mtd
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
2008-04-21 15:50:49 -07:00
net
mlx4_core: CQ resizing should pass a 0 opcode modifier to MODIFY_CQ
2008-04-23 11:55:45 -07:00
nubus
of
[POWERPC] i2c: Fix build breakage introduced by OF helpers
2008-04-20 13:03:35 +10:00
oprofile
parisc
PCI: remove parisc consumer of the pci global_list
2008-04-20 21:47:01 -07:00
parport
avr32: don't offer PARPORT_PC
2008-04-19 20:40:10 -04:00
pci
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/pci-2.6
2008-04-21 15:58:35 -07:00
pcmcia
Merge branch 'merge-fixes' into devel
2008-04-19 17:17:34 +01:00
pnp
power
ps3
rapidio
rtc
rtc: rtc-sh: Add support for periodic IRQs.
2008-04-18 09:50:01 -07:00
s390
Convert asm/semaphore.h users to linux/semaphore.h
2008-04-18 22:22:54 -04:00
sbus
scsi
Merge branch 'for-2.6.26' of git://git.kernel.dk/linux-2.6-block
2008-04-21 16:03:40 -07:00
serial
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
2008-04-21 15:50:49 -07:00
sh
sn
spi
ssb
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
2008-04-17 23:56:30 -07:00
tc
telephony
thermal
uio
UIO: hold a reference to the device's owner while the device is open
2008-04-19 19:10:18 -07:00
usb
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6
2008-04-21 15:44:57 -07:00
video
Merge branch 'merge-fixes' into devel
2008-04-19 17:17:34 +01:00
virtio
w1
watchdog
Convert asm/semaphore.h users to linux/semaphore.h
2008-04-18 22:22:54 -04:00
xen
zorro
Kconfig
Makefile