linux/drivers
Gal Rosen 0d9dc7c8b9 [SCSI] scsi_transport_fc: Fix synchronization issue while deleting vport
The issue occur while deleting 60 virtual ports through the sys
interface /sys/class/fc_vports/vport-X/vport_delete. It happen while in
a mistake each request sent twice for the same vport. This interface is
asynchronous, entering the delete request into a work queue, allowing
more than one request to enter to the delete work queue. The result is a
NULL pointer. The first request already delete the vport, while the
second request got a pointer to the vport before the device destroyed.
Re-create vport later cause system freeze.

Solution: Check vport flags before entering the request to the work queue.

[jejb: fixed int<->long problem on spinlock flags variable]
Signed-off-by: Gal Rosen <galr@storwize.com>
Acked-by: James Smart <james.smart@emulex.com>
Cc: Stable Tree <stable@kernel.org>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2010-03-08 22:36:53 +05:30
..
accessibility
acpi Merge branch 'acpica' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2010-03-01 10:36:22 -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: Allow device drivers to use dpm_wait() 2010-02-26 20:39:11 +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 branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 2010-03-02 10:34:25 -08:00
clocksource Merge branch 'timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-03-01 08:48:25 -08:00
connector
cpufreq
cpuidle
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
edac
eisa
firewire block: Rename blk_queue_max_sectors to blk_queue_max_hw_sectors 2010-02-26 13:58:08 +01:00
firmware Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ 2010-02-28 19:23:06 -08:00
gpio
gpu Merge branch 'x86-pci-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-02-28 10:59:18 -08:00
hid Merge branches 'upstream', 'raw_report_modifications' and 'apple_magic_mouse' into for-linus 2010-02-25 17:39:16 +01:00
hwmon
i2c Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2010-03-01 09:15:15 -08:00
ide Merge branch 'acpica' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2010-03-01 10:36:22 -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 [SCSI] libiscsi: Make iscsi_eh_target_reset start with session reset 2010-03-03 17:39:04 +05:30
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2010-03-01 10:38:09 -08:00
isdn Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ 2010-02-28 19:23:06 -08:00
leds
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 block: Consolidate phys_segment and hw_segment limits 2010-02-26 13:58:08 +01:00
media Merge branch 'master' of /home/davem/src/GIT/linux-2.6/ 2010-02-28 19:23:06 -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 Merge with mainline to remove plat-omap/Kconfig conflict 2010-03-01 14:19:05 -08:00
misc
mmc Merge with mainline to remove plat-omap/Kconfig conflict 2010-03-01 14:19:05 -08:00
mtd Merge with mainline to remove plat-omap/Kconfig conflict 2010-03-01 14:19:05 -08:00
net Merge branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 2010-03-02 10:34:25 -08:00
nubus
of
oprofile
parisc
parport
pci Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-03-02 07:55:08 -08:00
pcmcia Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus 2010-02-27 16:19:22 -08:00
platform Merge branch 'acpica' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2010-03-01 10:36:22 -08:00
pnp
power
pps
ps3
rapidio
regulator
rtc Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2010-03-01 09:15:15 -08: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 [SCSI] scsi_transport_fc: Fix synchronization issue while deleting vport 2010-03-08 22:36:53 +05:30
serial Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2010-03-01 09:15:15 -08:00
sfi
sh
sn
spi Merge with mainline to remove plat-omap/Kconfig conflict 2010-03-01 14:19:05 -08:00
ssb ssb: Add PCI ID 0x4322 to PHU handling 2010-02-19 15:52:51 -05:00
staging Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-03-02 07:55:08 -08:00
tc
telephony
thermal
uio
usb Merge with mainline to remove plat-omap/Kconfig conflict 2010-03-01 14:19:05 -08:00
uwb
vhost vhost-net: restart tx poll on sk_sndbuf full 2010-02-28 19:50:33 +02:00
video Merge branch 'for-linus' of git://gitorious.org/linux-omap-dss2/linux 2010-03-02 10:41:26 -08:00
virtio virtio: fix out of range array access 2010-02-28 20:39:11 +02:00
vlynq
w1
watchdog Merge with mainline to remove plat-omap/Kconfig conflict 2010-03-01 14:19:05 -08:00
xen
zorro
Kconfig
Makefile