linux/drivers/scsi/libfc
Vasu Dev 8d23f4ba38 [SCSI] libfc: don't call resp handler after FC_EX_TIMEOUT
In cases exch is already timed out then exch layer could
end up calling resp handler again for its response frame
received after timeout, though in this case fc_exch_timeout
handler would have already called resp with FC_EX_TIMEOUT.

This would cause REC response handler to release its
fsp pkt hold twice instead once and possibly similar issues
with other ELS exchanges in this race.

To avoid this race have resp updated under exch lock
in rx path, the resp would get set to NULL in case
of FC_EX_TIMEOUT under the same lock to prevent resp
callback after FC_EX_TIMEOUT.

Signed-off-by: Vasu Dev <vasu.dev@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>
2011-05-24 12:37:03 -04:00
..
fc_disc.c [SCSI] libfc: fix mm leak in handling incoming request for target discovery 2011-05-24 12:36:41 -04:00
fc_elsct.c [SCSI] libfc: add fc_fill_reply_hdr() and fc_fill_hdr() 2010-07-28 09:06:00 -05:00
fc_exch.c [SCSI] libfc: don't call resp handler after FC_EX_TIMEOUT 2011-05-24 12:37:03 -04:00
fc_fcp.c [SCSI] libfc: release DDP context if frame_send() fails 2011-05-24 12:36:51 -04:00
fc_frame.c 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
fc_libfc.c [SCSI] libfc: Extending lport's roles for target if there is a registered target. 2011-02-12 11:08:22 -06:00
fc_libfc.h [SCSI] libfc: release DDP context if frame_send() fails 2011-05-24 12:36:51 -04:00
fc_lport.c [SCSI] libfc: remove duplicate ema_list init 2011-05-01 10:20:52 -05:00
fc_npiv.c [SCSI] fcoe, libfc: initialize EM anchors list and then update npiv EMs 2011-02-28 18:31:53 -06:00
fc_rport.c [SCSI] libfc: Fixing a memory leak when destroying an interface 2011-02-28 18:28:45 -06:00
Makefile [SCSI] libfc: add some generic NPIV support routines to libfc 2009-12-04 12:00:56 -06:00