linux/drivers
Vasu Dev a0cc1ecc09 [SCSI] libfc: fix a circular locking warning during sending RRQ
Currently the fc_exch_rrq is called with fc_exch's ex_lock held.
The fc_exch_rrq allocates new exch and that requires taking
ex_lock again after EM lock. This locking order causes warning,
see more details on this warning at :-

 http://www.open-fcoe.org/pipermail/devel/2009-July/003251.html

This patch fixes this by dropping the ex_lock before calling
fc_exch_rrq().

The fc_exch_rrq needs to grab ex_lock lock again to schedule
RRQ retry and in the meanwhile fc_exch_reset could occur before
ex_lock is grabbed inside fc_exch_rrq. So to handle this case,
this patch adds additional check to detect fc_exch_reset after
ex_lock acquired and in case the fc_exch_reset occurred then
abandons the RRQ retry and releases the exch.

Signed-off-by: Vasu Dev <vasu.dev@intel.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-07-30 08:50:02 -05:00
..
accessibility
acpi ACPI: video: prevent NULL deref in acpi_get_pci_dev() 2009-06-26 00:23:42 -04:00
amba [ARM] amba: fix amba device resources 2009-07-05 22:39:08 +01:00
ata ahci: add device ID for 82801JI sata controller 2009-07-14 22:42:56 -04:00
atm
auxdisplay
base Firmware: firmware_class, fix lock imbalance 2009-07-12 13:02:10 -07:00
block headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
bluetooth headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
cdrom
char headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
clocksource clocksource: sh_tmu: Make undefined TCOR behaviour less undefined. 2009-06-24 21:08:11 +09:00
connector
cpufreq [CPUFREQ] Fix compile failure in cpufreq.c 2009-07-08 19:04:23 -04:00
cpuidle
crypto
dca
dio
dma DMA: txx9dmac: use dma_unmap_single if DMA_COMPL_{SRC,DEST}_UNMAP_SINGLE set 2009-06-24 18:34:40 +01:00
edac edac: add DDR3 memory type for MPC85xx EDAC 2009-06-30 18:55:59 -07:00
eisa
firewire Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 2009-07-06 14:03:44 -07:00
firmware
gpio headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
gpu drm/i915: Fix for LVDS VBT change on IGDNG 2009-07-10 14:11:06 -07:00
hid headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
hwmon hwmon: (abituguru3) DMI probing for AB9, AB9 QuadQT and IX38 QuadGT 2009-07-11 13:42:38 +02:00
i2c i2c: Use resource_size 2009-07-15 00:03:56 +01:00
ide Revert "ide: improve handling of Power Management requests" 2009-07-06 12:39:27 -07:00
idle
ieee1394 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 2009-07-06 14:03:44 -07:00
ieee802154
infiniband Merge branches 'ehca', 'misc', 'mlx4', 'mthca' and 'nes' into for-linus 2009-06-23 10:38:47 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2009-07-08 09:32:41 -07:00
isdn headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
leds Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
lguest eventfd: revised interface and cleanups 2009-06-30 18:55:58 -07:00
macintosh powerpc/pmac: Fix DMA ops for MacIO devices 2009-06-26 14:37:25 +10:00
mca
md Fix congestion_wait() sync/async vs read/write confusion 2009-07-10 20:31:53 +02:00
media headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
memstick
message fusion: mptsas, fix lock imbalance 2009-06-22 08:54:14 -05:00
mfd Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2009-07-08 09:32:41 -07:00
misc headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
mmc spi: add spi_master flag word 2009-06-30 18:56:00 -07:00
mtd UBI: fix compilation warnings 2009-07-08 10:15:41 +03:00
net Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2009-07-14 18:37:09 -07:00
nubus
of
oprofile oprofile: reset bt_lost_no_mapping with other stats 2009-07-10 12:35:36 +02:00
parisc Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
parport parport/serial: add support for NetMos 9901 Multi-IO card 2009-06-30 18:55:59 -07:00
pci headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
pcmcia Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
platform Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-09 20:33:18 -07:00
pnp Merge branches 'acerhdf', 'acpi-pci-bind', 'bjorn-pci-root', 'bugzilla-12904', 'bugzilla-13121', 'bugzilla-13396', 'bugzilla-13533', 'bugzilla-13612', 'c3_lock', 'hid-cleanups', 'misc-2.6.31', 'pdc-leak-fix', 'pnpacpi', 'power_nocheck', 'thinkpad_acpi', 'video' and 'wmi' into release 2009-06-24 01:19:50 -04:00
power wm97xx_batery: replace driver_data with dev_get_drvdata() 2009-07-12 13:02:10 -07:00
pps
ps3
rapidio
regulator
rtc rtc: ds1374, fix lock imbalance 2009-07-06 13:57:03 -07:00
s390 [SCSI] zfcp: Fix tracing of request id for abort requests 2009-07-30 08:49:59 -05:00
sbus
scsi [SCSI] libfc: fix a circular locking warning during sending RRQ 2009-07-30 08:50:02 -05:00
serial Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
sh
sn
spi spi: bitbang bugfix in message setup 2009-06-30 18:56:00 -07:00
ssb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-07-09 20:33:18 -07:00
staging Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6 2009-07-13 10:24:43 -07:00
tc
telephony headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
thermal
uio
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 2009-07-13 10:23:03 -07:00
uwb
video Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2009-07-13 10:24:08 -07:00
virtio
vlynq vlynq: fix typo in Kconfig to enable debugging 2009-07-06 13:57:03 -07:00
w1 Merge git://git.infradead.org/battery-2.6 2009-06-24 14:35:57 -07:00
watchdog [WATCHDOG] w83627hf_wdt.c: add support for the W83627EHF support 2009-07-09 18:29:45 +00:00
xen xen: Use kcalloc() in xen_init_IRQ() 2009-07-01 11:19:47 +02:00
zorro
Kconfig
Makefile