linux_dsm_epyc7002/drivers
Roland Dreier 39798695b4 IB/mad: Fix race between cancel and receive completion
When ib_cancel_mad() is called, it puts the canceled send on a list
and schedules a "flushed" callback from process context.  However,
this leaves a window where a receive completion could be processed
before the send is fully flushed.

This is fine, except that ib_find_send_mad() will find the MAD and
return it to the receive processing, which results in the sender
getting both a successful receive and a "flushed" send completion for
the same request.  Understandably, this confuses the sender, which is
expecting only one of these two callbacks, and leads to grief such as
a use-after-free in IPoIB.

Fix this by changing ib_find_send_mad() to return a send struct only
if the status is still successful (and not "flushed").  The search of
the send_list already had this check, so this patch just adds the same
check to the search of the wait_list.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
2006-11-13 09:38:07 -08:00
..
acorn IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
acpi [PATCH] acpi memory hotplug: remove strange add_memory fail message 2006-10-20 10:26:38 -07:00
amba
ata Revert "[PATCH] Add 0x7110 piix to ata_piix.c" 2006-11-01 22:09:21 -05:00
atm [ATM] horizon: read_bia() needs to be __devinit 2006-10-24 16:16:39 -07:00
base [PATCH] move SYS_HYPERVISOR inside the Generic Driver menu 2006-10-28 11:30:55 -07:00
block [PATCH] cciss: fix printk format warning 2006-10-28 11:30:53 -07:00
bluetooth [PATCH] lockdep: annotate DECLARE_WAIT_QUEUE_HEAD 2006-10-30 12:08:40 -08:00
cdrom [PATCH] cdrom: add endianness annotations 2006-10-10 16:15:33 -07:00
char [WATCHDOG] sc1200wdt.c pnp unregister fix. 2006-10-29 22:09:32 +01:00
clocksource [PATCH] clocksource: acpi_pm: add another greylist chipset 2006-10-21 13:35:05 -07:00
connector
cpufreq [PATCH] cpufreq: make the transition_notifier chain use SRCU 2006-10-04 07:55:30 -07:00
crypto [CRYPTO] padlock: Convert padlock-sha to use crypto_hash 2006-09-21 11:46:22 +10:00
dio
dma [PATCH] drivers/dma trivial annotations 2006-10-10 15:37:21 -07:00
edac [PATCH] drivers/edac/edac_mc.h must #include <linux/platform_device.h> 2006-08-06 08:57:46 -07:00
eisa [PATCH] EISA: handle sysfs errors 2006-10-11 11:14:25 -07:00
fc4 [SCSI] fc4: Conversion to struct scsi_cmnd in fc4 2006-10-25 15:12:45 -07:00
firmware [PATCH] i386: Disable nmi watchdog on all ThinkPads 2006-10-21 18:37:02 +02:00
hwmon hwmon: Fix debug messages in w83781d 2006-10-18 13:03:09 -07:00
i2c [ARM] Fix i2c-pxa slave mode support 2006-10-28 22:30:17 +01:00
ide [PATCH] drivers/ide/pci/generic.c: add missing newline to the all-generic-ide message 2006-10-30 12:08:41 -08:00
ieee1394 [ETH1394]: Fix unaligned accesses. 2006-10-30 15:24:38 -08:00
infiniband IB/mad: Fix race between cancel and receive completion 2006-11-13 09:38:07 -08:00
input sh: Cleanup board header directories. 2006-10-19 16:30:32 +09:00
isdn [PATCH] isdn/gigaset: avoid cs->dev null pointer dereference 2006-10-30 12:08:40 -08:00
leds [PATCH] drivers/led: handle sysfs errors 2006-10-17 08:18:46 -07:00
macintosh [POWERPC] Fix windfarm platform device usage 2006-10-10 13:56:13 +10:00
mca [PATCH] drivers/mca: handle sysfs errors 2006-10-11 11:14:25 -07:00
md [PATCH] Fix dmsetup table output change 2006-10-30 12:02:57 -08:00
media V4L/DVB (4750): AGC command1/2 is board specific 2006-10-14 00:44:29 -03:00
message [PATCH] lockdep: annotate DECLARE_WAIT_QUEUE_HEAD 2006-10-30 12:08:40 -08:00
mfd IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
misc [PATCH] ioc4: fix printk format warning 2006-10-28 11:30:53 -07:00
mmc [PATCH] missing includes of io.h 2006-10-24 22:01:11 -07:00
mtd [PATCH] silence 'make xmldocs' warning by adding missing description of 'raw' in nand_base.c:1485 2006-10-27 15:34:51 -07:00
net [PATCH] sky2: netpoll on dual port cards 2006-10-31 20:22:06 -05:00
nubus
oprofile [PATCH] inode-diet: Eliminate i_blksize from the inode structure 2006-09-27 08:26:18 -07:00
parisc Build fixes for struct pt_regs removal 2006-10-06 20:47:23 -06:00
parport [PATCH] sparc32 pt_regs fixes 2006-10-08 12:32:35 -07:00
pci PCI: Remove quirk_via_abnormal_poweroff 2006-10-27 11:20:33 -07:00
pcmcia Merge master.kernel.org:/home/rmk/linux-2.6-arm 2006-10-29 17:25:48 -08:00
pnp Fix DMA resource allocation in ACPIPnP 2006-10-18 11:36:11 -07:00
rapidio Fix several typos in drivers/ 2006-10-03 22:31:37 +02:00
rtc [PATCH] rtc: fix printk of 64-bit res on 32-bit platform 2006-10-17 08:18:47 -07:00
s390 [S390] cio: Make ccw_device_register() static. 2006-10-27 12:39:33 +02:00
sbus [SPARC]: Fix bus_id[] string overflow. 2006-10-27 01:03:31 -07:00
scsi [PATCH] SCSI: ISCSI build failure 2006-10-31 08:13:19 -08:00
serial [PATCH] ioc4_serial: irq flags fix 2006-10-30 12:08:40 -08:00
sh
sn [PATCH] ioc4: Enable build on non-SN2 2006-10-17 08:18:42 -07:00
spi Various drivers' irq handlers: kill dead code, needless casts 2006-10-06 15:00:58 -04:00
tc [MIPS] Fix DECserial build error by IRQ hander change 2006-10-08 02:38:28 +01:00
telephony [ixj] Add pci dev table for module auto loading. 2006-10-18 08:45:30 -04:00
usb [PATCH] lockdep: annotate DECLARE_WAIT_QUEUE_HEAD 2006-10-30 12:08:40 -08:00
video [POWERPC] Fix various offb issues 2006-11-01 14:52:48 +11:00
w1 [PATCH] w1 kconfig fix 2006-10-17 08:18:44 -07:00
zorro
Kconfig [PATCH] ioc4: Enable build on non-SN2 2006-10-17 08:18:42 -07:00
Makefile Move libata to drivers/ata. 2006-08-10 07:31:37 -04:00