linux/drivers
Eli Cohen f0dc117abd IPoIB: Fix TX queue lockup with mixed UD/CM traffic
The IPoIB UD QP reports send completions to priv->send_cq, which is
usually left unarmed; it only gets armed when the number of
outstanding send requests reaches the size of the TX queue. This
arming is done only in the send path for the UD QP.  However, when
sending CM packets, the net queue may be stopped for the same reasons
but no measures are taken to recover the UD path from a lockup.

Consider this scenario: a host sends high rate of both CM and UD
packets, with a TX queue length of N.  If at some time the number of
outstanding UD packets is more than N/2 and the overall outstanding
packets is N-1, and CM sends a packet (making the number of
outstanding sends equal N), the TX queue will be stopped.  When all
the CM packets complete, the number of outstanding packets will still
be higher than N/2 so the TX queue will not be restarted.

Fix this by calling ib_req_notify_cq() when the queue is stopped in
the CM path.

Signed-off-by: Eli Cohen <eli@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2010-03-11 13:37:11 -08:00
..
accessibility
acpi Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq 2010-03-07 12:52:38 -08:00
amba
ata Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev 2010-03-01 13:04:58 -08:00
atm
auxdisplay
base PM: Provide generic subsystem-level callbacks 2010-03-06 21:28:37 +01:00
block Merge branch 'for-2.6.34' of git://git.kernel.dk/linux-2.6-block 2010-03-01 09:00:29 -08:00
bluetooth Bluetooth: Convert Marvell driver to use per adapter debugfs 2010-02-27 14:05:38 +01:00
cdrom block: Consolidate phys_segment and hw_segment limits 2010-02-26 13:58:08 +01:00
char Merge git://git.kernel.org/pub/scm/linux/kernel/git/amit/virtio-console 2010-03-07 16:04:03 -08:00
clocksource MFGPT: move clocksource menu 2010-03-06 11:26:28 -08:00
connector
cpufreq
cpuidle cpuidle menu: remove 8 bytes of padding on 64 bit builds 2010-03-06 11:26:28 -08:00
crypto Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2010-02-26 16:50:02 -08:00
dca
dio
dma Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 2010-03-07 15:47:19 -08:00
edac Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp 2010-03-03 09:25:37 -08:00
eisa eisa: fix coding style for eisa bus code 2010-03-06 11:26:32 -08:00
firewire Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 2010-03-03 08:08:44 -08:00
firmware memory-hotplug: create /sys/firmware/memmap entry for new memory 2010-03-06 11:26:25 -08:00
gpio mfd: Fix lpc_sch related depends/selects, fix build error 2010-03-07 22:17:38 +01:00
gpu Revert "lib: build list_sort() only if needed" 2010-03-07 09:54:44 -08:00
hid USB: Push BKL on open down into the drivers 2010-03-02 14:54:23 -08:00
hwmon Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging 2010-03-06 11:33:09 -08:00
i2c Merge branch 'for-linus/i2c' of git://git.fluff.org/bjdooks/linux 2010-03-07 15:56:25 -08:00
ide Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-next-2.6 2010-03-04 08:24:06 -08:00
idle
ieee1394 block: Rename blk_queue_max_sectors to blk_queue_max_hw_sectors 2010-02-26 13:58:08 +01:00
ieee802154
infiniband IPoIB: Fix TX queue lockup with mixed UD/CM traffic 2010-03-11 13:37:11 -08:00
input input: Support onkey in 88pm860x 2010-03-07 22:17:20 +01:00
isdn Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ 2010-02-28 19:23:06 -08:00
leds led: Enable led in 88pm860x 2010-03-07 22:17:05 +01:00
lguest
macintosh Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2010-03-01 10:38:09 -08:00
mca
md dm raid1: fix deadlock when suspending failed device 2010-03-06 02:32:35 +00:00
media Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 2010-03-03 08:48:58 -08:00
memstick block: Consolidate phys_segment and hw_segment limits 2010-02-26 13:58:08 +01:00
message Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-03-02 07:55:08 -08:00
mfd mfd: Fix ucb1x00 build failure for collie_defconfig 2010-03-07 22:17:39 +01:00
misc lkdtm: add debugfs access and loosen KPROBE ties 2010-03-06 11:26:32 -08:00
mmc mfd/mmc: SDHI Kconfig update 2010-03-07 22:17:32 +01:00
mtd Merge git://git.infradead.org/ubi-2.6 2010-03-06 11:30:18 -08:00
net bitops: rename for_each_bit() to for_each_set_bit() 2010-03-06 11:26:23 -08:00
nubus
of
oprofile
parisc parisc: remove trailing space in messages 2010-03-06 22:54:09 +00:00
parport serial: 8250_pci: add support for MCS9865 / SYBA 6x Serial Port Card 2010-03-02 14:43:08 -08:00
pci Merge branch 'x86-mrst-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-03-07 15:59:39 -08:00
pcmcia pcmcia: disable pcmcia ioctl for !ARM, prepare for removal 2010-03-03 08:37:41 +01:00
platform Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mjg59/platform-drivers-x86 2010-03-03 07:41:24 -08:00
pnp
power power_supply: Enable power supply of max8925 2010-03-07 22:17:17 +01:00
pps
ps3
rapidio
regulator regulator: Add max8925 support 2010-03-07 22:17:08 +01:00
rtc rtc: Enable rtc in max8925 2010-03-07 22:17:16 +01:00
s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-03-02 07:55:08 -08:00
sbus
scsi Merge branch 'for-2.6.34' of git://git.kernel.dk/linux-2.6-block 2010-03-01 09:00:29 -08:00
serial Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 2010-03-07 15:47:19 -08:00
sfi
sh
sn
spi Merge with mainline to remove plat-omap/Kconfig conflict 2010-03-01 14:19:05 -08:00
ssb
staging Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6 2010-03-07 15:49:12 -08:00
tc
telephony
thermal
uio
usb USB: remove unused defintion of struct usb_device_status 2010-03-07 12:51:52 -08:00
uwb
vhost vhost-net: restart tx poll on sk_sndbuf full 2010-02-28 19:50:33 +02:00
video backlight: Enable max8925 backlight 2010-03-07 22:17:08 +01:00
virtio virtio: set pci bus master enable bit 2010-03-02 13:41:14 +02:00
vlynq
w1
watchdog Merge with mainline to remove plat-omap/Kconfig conflict 2010-03-01 14:19:05 -08:00
xen xen: add kconfig menu 2010-03-06 11:26:46 -08:00
zorro
Kconfig MFGPT: move clocksource menu 2010-03-06 11:26:28 -08:00
Makefile