linux/drivers/scsi/bfa
Jing Huang 56d218fc93 [SCSI] bfa: fix possible IO double completion
While processing the ioim in callback functions, the ioim is still in io_q.
During this time, if the itnim goes offline, the ioim is requeued from
itnim->io_q into itnim->delay_comp_q although the request is already completed.
This results in requeing the ioim into the callback queue if the ioim is not
freed by the time the ioim is requeued. This results in double completion of
the ioim. To fix this, whenever a response is received from firmware for an
ioim, deque it from io_q and enque to fcpim->comp_q. This will eliminate any
possibility of itnim picking any ioim for which the response is already
received.

Signed-off-by: Jing Huang <huangj@brocade.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2010-07-27 12:04:20 -05:00
..
include [SCSI] bfa: fix link state structure 2010-07-27 12:04:18 -05:00
bfa_callback_priv.h
bfa_cb_ioim_macros.h [SCSI] bfa: add dynamic queue selection 2010-07-27 12:04:17 -05:00
bfa_cee.c [SCSI] bfa: fixed checkpatch errors for bfad files 2009-12-04 12:00:09 -06:00
bfa_core.c [SCSI] bfa: enable new hardware 2010-07-27 12:04:03 -05:00
bfa_csdebug.c [SCSI] bfa: fixed checkpatch errors for bfad files 2009-12-04 12:00:09 -06:00
bfa_fcpim.c [SCSI] bfa: add dynamic queue selection 2010-07-27 12:04:17 -05:00
bfa_fcpim_priv.h [SCSI] bfa: add dynamic queue selection 2010-07-27 12:04:17 -05:00
bfa_fcport.c [SCSI] bfa: fix link state structure 2010-07-27 12:04:18 -05:00
bfa_fcs.c [SCSI] bfa: PBC vport create 2010-07-27 12:04:04 -05:00
bfa_fcs_lport.c [SCSI] bfa: add PBC port disable handling 2010-07-27 12:04:13 -05:00
bfa_fcs_port.c [SCSI] bfa: Rename pport to fcport in BFA FCS. 2010-03-07 13:05:10 +05:30
bfa_fcs_uf.c [SCSI] bfa: New interface to handle firmware upgrade scenario 2010-03-04 16:14:10 +05:30
bfa_fcxp.c [SCSI] bfa: enable basic PBC support 2010-07-27 12:04:04 -05:00
bfa_fcxp_priv.h
bfa_fwimg_priv.h [SCSI] bfa: enable new hardware 2010-07-27 12:04:03 -05:00
bfa_hw_cb.c [SCSI] bfa: add dynamic queue selection 2010-07-27 12:04:17 -05:00
bfa_hw_ct.c [SCSI] bfa: add dynamic queue selection 2010-07-27 12:04:17 -05:00
bfa_intr.c [SCSI] bfa: add dynamic queue selection 2010-07-27 12:04:17 -05:00
bfa_intr_priv.h [SCSI] bfa: fixed checkpatch errors for bfad files 2009-12-04 12:00:09 -06:00
bfa_ioc.c [SCSI] bfa: update to support firmware configuation 2010-07-27 12:04:14 -05:00
bfa_ioc.h [SCSI] bfa: update to support firmware configuation 2010-07-27 12:04:14 -05:00
bfa_ioc_cb.c [SCSI] bfa: enable new hardware 2010-07-27 12:04:03 -05:00
bfa_ioc_ct.c [SCSI] bfa: fix chip and memory initialization 2010-07-27 12:04:15 -05:00
bfa_iocfc.c [SCSI] bfa: add dynamic queue selection 2010-07-27 12:04:17 -05:00
bfa_iocfc.h [SCSI] bfa: add dynamic queue selection 2010-07-27 12:04:17 -05:00
bfa_iocfc_q.c
bfa_ioim.c [SCSI] bfa: fix possible IO double completion 2010-07-27 12:04:20 -05:00
bfa_itnim.c [SCSI] bfa: Replace bfa_assert() with bfa_sm_fault() 2010-03-07 12:54:18 +05:30
bfa_log.c [SCSI] bfa: fixed checkpatch errors for bfad files 2009-12-04 12:00:09 -06:00
bfa_log_module.c [SCSI] bfa: update to support firmware configuation 2010-07-27 12:04:14 -05:00
bfa_lps.c [SCSI] bfa: enable basic PBC support 2010-07-27 12:04:04 -05:00
bfa_lps_priv.h
bfa_module.c [SCSI] bfa: Rename pport to fcport in BFA FCS. 2010-03-07 13:05:10 +05:30
bfa_modules_priv.h [SCSI] bfa: Rename pport to fcport in BFA FCS. 2010-03-07 13:05:10 +05:30
bfa_os_inc.h [SCSI] bfa: fix compilation warning in powerpc 2010-05-01 14:12:11 -05:00
bfa_port.c [SCSI] bfa: statistics and typo fix 2010-07-27 12:04:07 -05:00
bfa_port_priv.h [SCSI] bfa: statistics and typo fix 2010-07-27 12:04:07 -05:00
bfa_priv.h [SCSI] bfa: enable basic PBC support 2010-07-27 12:04:04 -05:00
bfa_rport.c [SCSI] bfa: enable basic PBC support 2010-07-27 12:04:04 -05:00
bfa_rport_priv.h
bfa_sgpg.c [SCSI] bfa: enable basic PBC support 2010-07-27 12:04:04 -05:00
bfa_sgpg_priv.h
bfa_sm.c
bfa_timer.c
bfa_trcmod_priv.h [SCSI] bfa: Rename pport to fcport in BFA FCS. 2010-03-07 13:05:10 +05:30
bfa_tskim.c [SCSI] bfa: Replace bfa_assert() with bfa_sm_fault() 2010-03-07 12:54:18 +05:30
bfa_uf.c [SCSI] bfa: fix uf post and rport fcpim state machine 2010-07-27 12:04:16 -05:00
bfa_uf_priv.h
bfad.c [SCSI] bfa: PBC vport create 2010-07-27 12:04:04 -05:00
bfad_attr.c [SCSI] bfa: PBC vport create 2010-07-27 12:04:04 -05:00
bfad_attr.h [SCSI] bfa: Remove unused header files and did some cleanup. 2010-03-07 13:27:51 +05:30
bfad_drv.h [SCSI] bfa: statistics and typo fix 2010-07-27 12:04:07 -05:00
bfad_fwimg.c [SCSI] bfa: enable new hardware 2010-07-27 12:04:03 -05:00
bfad_im.c [SCSI] bfa: add dynamic queue selection 2010-07-27 12:04:17 -05:00
bfad_im.h [SCSI] bfa: add fc transport class based vport create/delete 2010-04-11 09:24:16 -05:00
bfad_im_compat.h [SCSI] bfa: enable new hardware 2010-07-27 12:04:03 -05:00
bfad_intr.c [SCSI] bfa: enable new hardware 2010-07-27 12:04:03 -05:00
bfad_ipfc.h
bfad_os.c
bfad_tm.h
bfad_trcmod.h
fab.c
fabric.c [SCSI] bfa: use standards defined timeout for ELS/CT 2010-07-27 12:04:08 -05:00
fcbuild.c [SCSI] bfa: fixed checkpatch errors for bfad files 2009-12-04 12:00:09 -06:00
fcbuild.h [SCSI] bfa: FCS and include file changes. 2010-03-07 13:12:04 +05:30
fcpim.c [SCSI] bfa: fix uf post and rport fcpim state machine 2010-07-27 12:04:16 -05:00
fcptm.c
fcs.h [SCSI] bfa: fixed checkpatch errors for bfad files 2009-12-04 12:00:09 -06:00
fcs_auth.h
fcs_fabric.h [SCSI] bfa: use standards defined timeout for ELS/CT 2010-07-27 12:04:08 -05:00
fcs_fcpim.h [SCSI] bfa: New interface to handle firmware upgrade scenario 2010-03-04 16:14:10 +05:30
fcs_fcptm.h
fcs_fcxp.h
fcs_lport.h [SCSI] bfa: Resume BFA operations after firmware mismatch is resolved. 2010-03-04 16:17:02 +05:30
fcs_ms.h
fcs_port.h [SCSI] bfa: New interface to handle firmware upgrade scenario 2010-03-04 16:14:10 +05:30
fcs_rport.h [SCSI] bfa: fix uf post and rport fcpim state machine 2010-07-27 12:04:16 -05:00
fcs_trcmod.h
fcs_uf.h [SCSI] bfa: New interface to handle firmware upgrade scenario 2010-03-04 16:14:10 +05:30
fcs_vport.h [SCSI] bfa: PBC vport create 2010-07-27 12:04:04 -05:00
fdmi.c [SCSI] bfa: use standards defined timeout for ELS/CT 2010-07-27 12:04:08 -05:00
loop.c [SCSI] bfa: Rename pport to fcport in BFA FCS. 2010-03-07 13:05:10 +05:30
lport_api.c [SCSI] bfa: fix rport speed setting 2010-07-27 12:04:10 -05:00
lport_priv.h
Makefile [SCSI] bfa: IOC changes: Support faster recovery and split bfa_ioc.c into ASIC specific code. 2010-03-07 12:49:48 +05:30
ms.c [SCSI] bfa: use standards defined timeout for ELS/CT 2010-07-27 12:04:08 -05:00
n2n.c
ns.c [SCSI] bfa: use standards defined timeout for ELS/CT 2010-07-27 12:04:08 -05:00
plog.c [SCSI] bfa: fixed checkpatch errors for bfad files 2009-12-04 12:00:09 -06:00
rport.c [SCSI] bfa: fix uf post and rport fcpim state machine 2010-07-27 12:04:16 -05:00
rport_api.c [SCSI] bfa: fix rport speed setting 2010-07-27 12:04:10 -05:00
rport_ftrs.c [SCSI] bfa: fix rport speed setting 2010-07-27 12:04:10 -05:00
scn.c [SCSI] bfa: use standards defined timeout for ELS/CT 2010-07-27 12:04:08 -05:00
vfapi.c [SCSI] bfa: fixed checkpatch errors for bfad files 2009-12-04 12:00:09 -06:00
vport.c [SCSI] bfa: vport state machine fix 2010-07-27 12:04:05 -05:00