linux/drivers
Yi Zou 3b64b18811 [SCSI] libfc: fix lun reset failure bugs in fc_fcp_resp handling of FCP_RSP_INFO
In LUN RESET testing involving NetApp targets, it is observed that LUN
RESET is failing. The fc_fcp_resp() is not completing the completion
for the LUN RESET task since fc_fcp_resp assumes that the FCP_RSP_INFO
is 8 bytes with the 4 byte reserved field, where in case of NetApp targets
the FCP_RSP to LUN RESET only has 4 bytes of FCP_RSP_INFO. This leads
fc_fcp_resp to error out w/o completing the task completion, eventually
causing LUN RESET to be escalated to host reset, which is not very nice.

Per FCP-3 r04, clause 9.5.15 and Table 23, the FCP_RSP_INFO field can be either
4 bytes or 8 bytes, with the last 4 bytes as "Reserved (if any)". Therefore it
is valid to have 4 bytes FCP_RSP_INFO like some of the NetApp targets behave.
Fixing this by validating the FCP_RSP_INFO against both the two spec allowed
length.

Reported-by: Frank Zhang <frank_1.zhang@intel.com>
Signed-off-by: Yi Zou <yi.zou@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
History 2012-10-07 11:52:55 +01:00
..
accessibility vt:tackle kbd_table 2012-03-08 10:50:35 -08:00
acpi Power management updates for 3.7-rc1 2012-10-02 18:32:35 -07:00
amba Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-07-27 15:14:26 -07:00
ata SCSI for-linus on 20121002 2012-10-02 19:01:32 -07:00
atm drivers/atm/iphase.c: fix error return code 2012-08-06 13:29:57 -07:00
auxdisplay Fix common misspellings 2011-03-31 11:26:23 -03:00
base Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-10-02 20:25:04 -07:00
bcma bcma: change delays to follow timers-howto guide 2012-09-28 13:54:02 -04:00
block Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2012-10-02 11:11:09 -07:00
bluetooth Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-10-02 13:38:27 -07:00
bus drivers: bus: omap_l3: fixup merge conflict resolution 2012-10-01 19:39:48 -07:00
cdrom workqueue: deprecate flush[_delayed]_work_sync() 2012-08-20 14:51:24 -07:00
char Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2012-10-02 21:38:48 -07:00
clk spi: Updates for v3.7 2012-10-02 17:26:42 -07:00
clocksource Power management updates for 3.7-rc1 2012-10-02 18:32:35 -07:00
connector Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-10-02 13:38:27 -07:00
cpufreq Power management updates for 3.7-rc1 2012-10-02 18:32:35 -07:00
cpuidle cpuidle: rename function name "__cpuidle_register_driver", v2 2012-09-22 00:38:32 +02:00
crypto Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next 2012-10-02 12:57:42 -07:00
dca drivers/dca: Add export.h for THIS_MODULE to dca-sysfs.c 2011-10-31 19:31:43 -04:00
devfreq workqueue: make deferrable delayed_work initializer names consistent 2012-08-21 13:18:23 -07:00
dio m68k: don't export static inline functions 2009-12-06 11:18:28 +01:00
dma ARM: soc: multiplatform enablement 2012-10-01 19:11:38 -07:00
edac Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
eisa eisa/pci_eisa.c: fix BUG introduced by 005bdad7b8 2011-08-04 06:32:51 -10:00
extcon Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
firewire - Small fixes and optimizations. 2012-07-30 09:32:39 -07:00
firmware firmware: Add missing attributes to EFI variable attribute print out from sysfs 2012-09-10 16:40:30 -07:00
gpio So this is the LW GPIO patch stack for v3.7: 2012-10-02 16:05:10 -07:00
gpu Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2012-10-02 11:11:09 -07:00
hid Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
hsi HSI: hsi_char: Remove max_data_size from sysfs 2012-04-23 14:23:32 +03:00
hv Drivers: hv: kvp: Copy the address family information 2012-09-05 12:12:38 -07:00
hwmon ARM: soc: multiplatform enablement 2012-10-01 19:11:38 -07:00
hwspinlock hwspinlock/core: move the dereference below the NULL test 2012-09-10 13:19:25 +03:00
i2c ARM: soc: multiplatform enablement 2012-10-01 19:11:38 -07:00
ide ide: fix generic_ide_suspend/resume Oops 2012-08-21 14:54:42 -07:00
idle intel_idle: Check cpu_idle_get_driver() for NULL before dereferencing it. 2012-08-17 19:37:14 +02:00
iio iio: adc: add new lp8788 adc driver 2012-09-22 10:29:19 +01:00
infiniband Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-10-02 20:25:04 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2012-10-02 17:16:10 -07:00
iommu PCI changes for the 3.7 merge window: 2012-10-01 12:05:36 -07:00
irqchip irqchip: fill in empty Kconfig 2012-09-24 10:07:40 -07:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-10-02 13:38:27 -07:00
leds Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
lguest lguest, x86: handle guest TS bit for lazy/non-lazy fpu host models 2012-09-18 15:52:09 -07:00
macintosh Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
md Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
media Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
memory memory: tegra{20,30}-mc: Fix reading incorrect register in mc_readl() 2012-09-26 14:04:09 -07:00
memstick memstick: remove the second argument of k[un]map_atomic() 2012-03-20 21:48:19 +08:00
message [SCSI] Fusion MPT: disable pci device when mpt map resoures failed 2012-09-14 17:59:29 +01:00
mfd Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
misc Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
mmc spi: Updates for v3.7 2012-10-02 17:26:42 -07:00
mtd The main change is the way we reserve eraseblocks for bad blocks 2012-10-02 20:49:15 -07:00
net Features: 2012-10-02 22:09:10 -07:00
nfc NFC: Fix missing mutex unlock in pn533_send_cmd_frame_async 2012-09-27 10:47:48 +02:00
nubus Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
of dt: introduce for_each_available_child_of_node, of_get_next_available_child 2012-08-20 02:16:00 -07:00
oprofile oprofile: Remove 'WQ on CPUx, prefer CPUy' warning 2012-08-27 14:49:39 +02:00
parisc parisc/PCI: Use list_for_each_entry() for bus->devices traversal 2012-08-22 11:34:38 -06:00
parport parport: fix possible memory leak in parport_gsc_probe_port() 2012-09-05 16:34:22 -07:00
pci Features: 2012-10-02 22:09:10 -07:00
pcmcia ARM: soc: multiplatform enablement 2012-10-01 19:11:38 -07:00
pinctrl These are the bulk pinctrl changes for kernel v3.7: 2012-10-02 16:20:20 -07:00
platform Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
pnp ACPI/PM: specify lowest allowed state for device sleep state 2012-06-23 10:41:09 -06:00
power Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
pps pps: return PTR_ERR on error in device_create 2012-07-30 17:25:21 -07:00
ps3 drivers/ps3: Fix checkpatch warnings in ps3av.c 2012-04-24 18:18:01 -07:00
ptp ptp: link the phc device to its parent device 2012-09-22 15:42:38 -04:00
pwm pwm: pwm-tiehrpwm: Fix conflicting channel period setting 2012-09-10 17:04:38 +02:00
rapidio Merge commit 'v3.6-rc5' into next 2012-09-13 08:41:01 -06:00
regulator Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
remoteproc ARM: omap: move platform_data definitions 2012-09-19 17:39:52 +02:00
rpmsg rpmsg: fix dma_free_coherent dev parameter 2012-09-12 12:03:57 +03:00
rtc ARM: soc: device tree updates 2012-10-01 18:28:06 -07:00
s390 SCSI for-linus on 20121002 2012-10-02 19:01:32 -07:00
sbus drivers/sbus/char: removes unnecessary semicolon 2012-09-21 12:08:56 -07:00
scsi [SCSI] libfc: fix lun reset failure bugs in fc_fcp_resp handling of FCP_RSP_INFO 2012-10-07 11:52:55 +01:00
sfi drivers/sfi: sfi_acpi.c needs sysfs.h 2011-10-31 19:31:57 -04:00
sh ARM: soc: multiplatform enablement 2012-10-01 19:11:38 -07:00
sn include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
spi spi: Updates for v3.7 2012-10-02 17:26:42 -07:00
ssb ssb: check for flash presentence 2012-08-10 15:27:02 -04:00
staging Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-10-02 20:25:04 -07:00
target Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-10-01 09:06:36 -07:00
tc include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
thermal workqueue: use mod_delayed_work() instead of cancel + queue 2012-08-13 16:27:37 -07:00
tty Features: 2012-10-02 22:09:10 -07:00
uio uio_pdrv_genirq: get irq through platform resource if not set otherwise 2012-05-15 08:44:58 -07:00
usb Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-10-02 20:25:04 -07:00
uwb uwb: fix error handling 2012-04-18 13:15:51 -07:00
vfio switch simple cases of fget_light to fdget 2012-09-26 22:20:08 -04:00
vhost vhost_set_vring(): turn pollstart/pollstop into bool 2012-09-26 21:10:12 -04:00
video Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-10-02 20:25:04 -07:00
virt drivers/virt: add ioctl for 32-bit compat on 64-bit to fsl-hv-manager 2011-10-14 02:56:02 -05:00
virtio [SCSI] virtio-scsi: Add vdrv->scan for post VIRTIO_CONFIG_S_DRIVER_OK LUN scanning 2012-07-20 08:59:03 +01:00
vlynq vlynq: Convert irq functions 2011-03-28 19:33:04 +02:00
vme vme: vme_ca91cx42.c: use list_for_each_safe() when delete list items 2012-09-06 13:29:11 -07:00
w1 char/misc driver merge for 3.7-rc1 2012-10-01 12:09:59 -07:00
watchdog ARM: soc: general cleanups 2012-10-01 18:19:05 -07:00
xen Features: 2012-10-02 22:09:10 -07:00
zorro zorro: Remove unused zorro_bus.devices 2012-07-15 19:56:38 +02:00
Kconfig ARM: soc: driver specific changes 2012-10-01 18:46:13 -07:00
Makefile Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-10-02 13:38:27 -07:00