kernel_optimize_test/drivers/scsi
Hiral Patel a0bf1ca27b [SCSI] fnic: fnic driver may hit BUG_ON on device reset
The issue was observed when LUN Reset is issued through IOCTL or sg_reset
utility.

fnic driver issues LUN RESET to firmware. On successful completion of device
reset, driver cleans up all the pending IOs that were issued prior to device
reset. These pending IOs are expected to be in ABTS_PENDING state. This works
fine, when the device reset operation resulted from midlayer, but not when
device reset was triggered from IOCTL path as the pending IOs were not in
ABTS_PENDING state. execution path hits panic if the pending IO is not in
ABTS_PENDING state.

Changes:
The fix replaces BUG_ON check in fnic_clean_pending_aborts() with marking
pending IOs as ABTS_PENDING if they were not in ABTS_PENDING state and skips
if they were already in ABTS_PENDING state. An extra check is added to validate
the abort status of the commands after a delay of 2 * E_D_TOV using a
helper function. The helper function returns 1 if it finds any pending IO in
ABTS_PENDING state, belong to the LUN on which device reset was issued else 0.
With this, device reset operation returns success only if the helper funciton
returns 0, otherwise it returns failure.

Other changes:
- Removed code in fnic_clean_pending_aborts() that returns failure if it finds
  io_req NULL, instead of returning failure added code to continue with next io
- Added device reset flags for debugging in fnic_terminate_rport_io,
  fnic_rport_exch_reset, and fnic_clean_pending_aborts

Signed-off-by: Narsimhulu Musini <nmusini@cisco.com>
Signed-off-by: Hiral Patel <hiralpat@cisco.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2013-02-22 17:30:19 +00:00
..
aacraid [SCSI] aacraid: 1024 max outstanding command support for Series 7 and above 2013-01-30 14:07:48 +11:00
aic7xxx scsi: fix various printk and comment typos 2012-09-01 08:24:35 -07:00
aic7xxx_old
aic94xx Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
arcmsr workqueue: deprecate flush[_delayed]_work_sync() 2012-08-20 14:51:24 -07:00
arm Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
be2iscsi Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
bfa [SCSI] bfa: fix strncpy() limiter in bfad_start_ops() 2013-01-30 11:54:54 +11:00
bnx2fc [SCSI] bnx2fc: adjust duplicate test 2013-01-30 14:04:54 +11:00
bnx2i [SCSI] bnx2i: fix the bit manipulation when setting the error mask 2013-01-29 14:15:34 +11:00
csiostor [SCSI] csiostor: Don't leak mem or fail to release firmware in csio_hw_flash_config() 2013-01-30 10:48:50 +11:00
cxgbi [SCSI] cxgb4i: Remove the scsi host device when removing device 2013-01-30 11:58:06 +11:00
device_handler [SCSI] scsi_dh_alua: Enable STPG for unavailable ports 2012-09-24 12:21:56 +04:00
dpt
fcoe random32: rename random32 to prandom 2012-12-17 17:15:26 -08:00
fnic [SCSI] fnic: fnic driver may hit BUG_ON on device reset 2013-02-22 17:30:19 +00:00
ibmvscsi Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
isci Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
libfc [SCSI] libfc: fix lun reset failure bugs in fc_fcp_resp handling of FCP_RSP_INFO 2012-10-07 11:52:55 +01:00
libsas treewide: fix typo of "suport" in various comments and Kconfig 2012-11-19 14:16:09 +01:00
lpfc [SCSI] lpfc 8.3.37: Update lpfc version for 8.3.37 driver release 2013-01-30 11:42:55 +11:00
megaraid [SCSI] megaraid_sas: Version and Changelog update 2013-02-22 15:37:15 +00:00
mpt2sas [SCSI] mpt2sas: fix for driver fails EEH, recovery from injected pci bus error 2013-01-29 14:15:35 +11:00
mpt3sas [SCSI] mpt3sas: remove unused variables 2013-01-29 14:15:35 +11:00
mvsas [SCSI] mvsas: fixed timeout issue when removing module 2013-02-22 11:18:33 +00:00
osd [SCSI] libosd: check for kzalloc() failure 2013-02-22 11:26:40 +00:00
pcmcia
pm8001 [SCSI] pm80xx: fix for memory region free 2013-02-22 15:44:40 +00:00
qla2xxx [SCSI] qla2xxx: Wait for IDC complete event to finish loopback operation. 2013-02-22 15:06:24 +00:00
qla4xxx [SCSI] qla4xxx: don't free NULL dma pool 2013-02-22 11:24:22 +00:00
sym53c8xx_2 Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
ufs Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
.gitignore
3w-9xxx.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
3w-9xxx.h
3w-sas.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
3w-sas.h
3w-xxxx.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
3w-xxxx.h
53c700_d.h_shipped
53c700.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
53c700.h
53c700.scr
a100u2w.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
a100u2w.h
a2091.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
a2091.h
a3000.c
a3000.h
a4000t.c
advansys.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
aha152x.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
aha152x.h
aha1542.c treewide: Put a space between #include and FILE 2012-06-28 11:44:36 +02:00
aha1542.h
aha1740.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
aha1740.h
aic7xxx_old.c
atari_NCR5380.c
atari_scsi.c scsi/atari: Make more functions static 2012-04-22 20:16:49 +02:00
atari_scsi.h scsi/atari: Make more functions static 2012-04-22 20:16:49 +02:00
atp870u.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
atp870u.h
BusLogic.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
BusLogic.h
bvme6000_scsi.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
ch.c
constants.c [SCSI] add DID_TARGET_FAILURE and DID_NEXUS_FAILURE to hostbyte_table in constants.c 2012-09-14 11:58:53 +01:00
dc395x.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
dc395x.h
dmx3191d.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
dpt_i2o.c
dpti.h
dtc.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
dtc.h
eata_generic.h
eata_pio.c
eata_pio.h
eata.c
esp_scsi.c scsi: Use vsprintf extention %pf with builtin_return_address 2012-04-05 17:09:40 -07:00
esp_scsi.h
fdomain.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
fdomain.h
FlashPoint.c
g_NCR5380_mmio.c
g_NCR5380.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
g_NCR5380.h
gdth_ioctl.h
gdth_proc.c
gdth_proc.h
gdth.c [SCSI] gdth: Remove buggy ROM handling 2013-01-29 13:55:06 +11:00
gdth.h gdt: remove unnecessary #defines 2012-09-01 08:43:34 -07:00
gvp11.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
gvp11.h
hosts.c [SCSI] Fix device removal NULL pointer dereference 2012-07-20 08:58:40 +01:00
hpsa_cmd.h [SCSI] hpsa: dial down lockup detection during firmware flash 2012-05-10 09:19:39 +01:00
hpsa.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
hpsa.h [SCSI] hpsa: dial down lockup detection during firmware flash 2012-05-10 09:19:39 +01:00
hptiop.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
hptiop.h [SCSI] hptiop: Support HighPoint RR4520/RR4522 HBA 2012-11-27 08:59:43 +04:00
imm.c
imm.h
in2000.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
in2000.h
initio.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
initio.h
ipr.c [SCSI] ipr: Fix sparse error in ipr driver 2013-01-30 10:48:53 +11:00
ipr.h [SCSI] ipr: Driver version 2.6.0 2013-01-30 10:48:53 +11:00
ips.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
ips.h
iscsi_boot_sysfs.c
iscsi_tcp.c [SCSI] iscsi_tcp: increase max_lun to ~0, don't care 2012-09-24 12:10:55 +04:00
iscsi_tcp.h
jazz_esp.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
Kconfig [SCSI] mpt3sas: add new driver supporting 12GB SAS 2012-12-01 10:09:17 +00:00
lasi700.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
libiscsi_tcp.c SCSI updates on 20120319 2012-03-22 12:55:29 -07:00
libiscsi.c
libsrp.c
mac_esp.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
mac_scsi.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
mac_scsi.h
mac53c94.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
mac53c94.h
Makefile [SCSI] mpt3sas: add new driver supporting 12GB SAS 2012-12-01 10:09:17 +00:00
megaraid.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
megaraid.h megaraid: remove unnecessary #defines 2012-09-01 08:42:43 -07:00
mesh.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
mesh.h
mvme16x_scsi.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
mvme147.c
mvme147.h
mvumi.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
mvumi.h [SCSI] mvumi: Add support for Marvell SAS/SATA RAID-on-Chip(ROC) 88RC9580 2012-10-07 11:34:36 +01:00
NCR_D700.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
NCR_D700.h
NCR_Q720.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
NCR_Q720.h
ncr53c8xx.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
ncr53c8xx.h
NCR53c406a.c
NCR5380.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
NCR5380.h
nsp32_debug.c
nsp32_io.h
nsp32.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
nsp32.h
osst_detect.h
osst_options.h
osst.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
osst.h
pas16.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
pas16.h
pmcraid.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
pmcraid.h
ppa.c
ppa.h
ps3rom.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
qla1280.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
qla1280.h
qlogicfas.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
qlogicfas408.c
qlogicfas408.h
qlogicpti.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
qlogicpti.h
raid_class.c
script_asm.pl
scsi_debug.c [SCSI] scsi_debug: Fix off-by-one bug when unmapping region 2012-10-09 12:23:11 +01:00
scsi_devinfo.c [SCSI] Disable DIF on Hitachi Ultrastar 15K300 2012-09-24 12:11:00 +04:00
scsi_error.c [SCSI] Shorten the path length of scsi_cmd_to_driver() 2012-10-09 12:04:42 +01:00
scsi_ioctl.c
scsi_lib_dma.c
scsi_lib.c Merge branch 'for-3.8/core' of git://git.kernel.dk/linux-block 2012-12-17 08:27:23 -08:00
scsi_logging.h
scsi_module.c
scsi_netlink.c scsi_netlink: Remove dead and buggy code 2012-09-13 16:26:39 -04:00
scsi_pm.c [SCSI] scsi_pm: use callbacks from dev_pm_ops for scsi devices 2012-11-30 09:26:48 +00:00
scsi_priv.h [SCSI] async: introduce 'async_domain' type 2012-07-20 09:05:54 +01:00
scsi_proc.c
scsi_sas_internal.h
scsi_scan.c Merge SCSI misc branch into isci-for-3.6 tag 2012-10-02 08:55:12 +01:00
scsi_sysctl.c
scsi_sysfs.c [SCSI] prevent stack buffer overflow in host_reset 2012-11-30 09:08:16 +00:00
scsi_tgt_if.c
scsi_tgt_lib.c
scsi_tgt_priv.h
scsi_trace.c
scsi_transport_api.h
scsi_transport_fc_internal.h
scsi_transport_fc.c Merge branch 'for-3.6/core' of git://git.kernel.dk/linux-block 2012-08-01 09:02:41 -07:00
scsi_transport_iscsi.c [SCSI] scsi_transport_iscsi: export iscsi class session's target_id in sysfs. 2013-01-29 13:55:07 +11:00
scsi_transport_sas.c [SCSI] scsi_transport_sas: add 12GB definitions for mpt3sas 2012-12-01 10:08:41 +00:00
scsi_transport_spi.c [SCSI] scsi_transport_spi: fix for unbalanced reference counting 2012-05-10 09:06:12 +01:00
scsi_transport_srp_internal.h
scsi_transport_srp.c IB/srp: Allow SRP disconnect through sysfs 2012-11-30 17:40:33 -08:00
scsi_typedefs.h
scsi.c [SCSI] Add a report opcode helper 2012-11-13 21:11:31 -08:00
scsi.h
scsicam.c
sd_dif.c [SCSI] sd: Avoid remapping bad reference tags 2012-09-24 12:10:59 +04:00
sd.c [SCSI] sd: update sd to use the new pm callbacks 2012-11-30 09:28:34 +00:00
sd.h [SCSI] sd: Implement support for WRITE SAME 2012-11-13 22:45:42 -08:00
ses.c
sg.c mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
sgiwd93.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sim710.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sni_53c710.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sr_ioctl.c
sr_vendor.c
sr.c
sr.h
st_options.h
st.c [SCSI] st: remove st_mutex 2012-09-24 13:07:02 +04:00
st.h [SCSI] st: raise device limit 2012-09-14 17:59:29 +01:00
stex.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
storvsc_drv.c [SCSI] storvsc: Account for in-transit packets in the RESET path 2012-10-09 12:28:58 +01:00
sun_esp.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sun3_NCR5380.c
sun3_scsi_vme.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
sun3_scsi.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
sun3_scsi.h
sun3x_esp.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sym53c416.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
sym53c416.h
t128.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
t128.h
tmscsim.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
tmscsim.h
u14-34f.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
ultrastor.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
ultrastor.h
virtio_scsi.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
vmw_pvscsi.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
vmw_pvscsi.h [SCSI] vmw_pvscsi: Try setting host->max_id as suggested by the device. 2012-03-27 08:26:36 +01:00
wd33c93.c
wd33c93.h
wd7000.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
zalon.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00
zorro7xx.c Drivers: scsi: remove __dev* attributes. 2013-01-03 15:57:01 -08:00