linux_dsm_epyc7002/drivers/scsi/lpfc
James Smart ca7fb76e09 scsi: lpfc: Correct race with abort on completion path
On io completion, the driver is taking an adapter wide lock and nulling the
scsi command back pointer.  The nulling of the back pointer is to signify the
io was completed and the scsi_done() routine was called.  However, the routine
makes no check to see if the abort routine had done the same thing and
possibly nulled the pointer. Thus it may doubly-complete the io.

Make the following mods:

- Check to make sure forward progress (call scsi_done()) only happens if the
  command pointer was non-null.

- As the taking of the lock, which is adapter wide, is very costly on a system
  under load, null the pointer using an xchg operation rather than under lock.

Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <james.smart@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2018-09-11 20:37:33 -04:00
..
lpfc_attr.c scsi: lpfc: Raise nvme defaults to support a larger io and more connectivity 2018-09-11 20:37:33 -04:00
lpfc_attr.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_bsg.c scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_bsg.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_compat.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_crtn.h scsi: lpfc: remove ScsiResult macro 2018-07-10 22:42:47 -04:00
lpfc_ct.c scsi: lpfc: Fix GFT_ID and PRLI logic for RSCN 2018-09-11 20:37:32 -04:00
lpfc_debugfs.c scsi: lpfc: Comment cleanup regarding Broadcom copyright header 2018-05-08 01:03:16 -04:00
lpfc_debugfs.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_disc.h scsi: lpfc: Limit tracking of tgt queue depth in fast path 2018-08-02 15:45:19 -04:00
lpfc_els.c scsi: lpfc: Correct LCB ACCept payload 2018-08-02 15:45:19 -04:00
lpfc_hbadisc.c scsi: lpfc: Fix GFT_ID and PRLI logic for RSCN 2018-09-11 20:37:32 -04:00
lpfc_hw4.h scsi: lpfc: Support duration field in Link Cable Beacon V1 command 2018-07-10 22:15:09 -04:00
lpfc_hw.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_ids.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_init.c scsi: lpfc: raise sg count for nvme to use available sg resources 2018-09-11 20:37:33 -04:00
lpfc_logmsg.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_mbox.c scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_mem.c scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_nl.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_nportdisc.c scsi: lpfc: Fix GFT_ID and PRLI logic for RSCN 2018-09-11 20:37:32 -04:00
lpfc_nvme.c scsi: lpfc: raise sg count for nvme to use available sg resources 2018-09-11 20:37:33 -04:00
lpfc_nvme.h scsi: lpfc: Limit tracking of tgt queue depth in fast path 2018-08-02 15:45:19 -04:00
lpfc_nvmet.c scsi: lpfc: raise sg count for nvme to use available sg resources 2018-09-11 20:37:33 -04:00
lpfc_nvmet.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_scsi.c scsi: lpfc: Correct race with abort on completion path 2018-09-11 20:37:33 -04:00
lpfc_scsi.h scsi: lpfc: Limit tracking of tgt queue depth in fast path 2018-08-02 15:45:19 -04:00
lpfc_sli4.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_sli.c scsi: lpfc: Fix ELS abort on SLI-3 adapters 2018-08-02 15:45:18 -04:00
lpfc_sli.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_version.h scsi: lpfc: update driver version to 12.0.0.6 2018-08-02 15:45:19 -04:00
lpfc_vport.c scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_vport.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc.h scsi: lpfc: raise sg count for nvme to use available sg resources 2018-09-11 20:37:33 -04:00
Makefile scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00