linux/drivers/scsi/lpfc
James Smart 3386f4bdd2 scsi: lpfc: Fix crash during driver unload with running nvme traffic
When the driver is unloading, the nvme transport could be in the process
of submitting new requests, will send abort requests to terminate
associations, or may make LS-related requests.  The driver's abort and
request entry points currently is ignorant of the unloading state and is
starting the requests even though the infrastructure to complete them
continues to teardown.

Change the entry points for new requests to check whether unloading and
if so, reject the requests. Abort routines check unloading, and if so,
noop the request. An abort is noop'd as the teardown paths are already
aborting/terminating the io outstanding at the time the teardown
initiated.

Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <james.smart@broadcom.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2017-12-04 20:32:55 -05:00
..
lpfc_attr.c scsi: lpfc: Adjust default value of lpfc_nvmet_mrq 2017-12-04 20:32:54 -05:00
lpfc_attr.h scsi: lpfc: Add Buffer to Buffer credit recovery support 2017-08-24 22:29:43 -04:00
lpfc_bsg.c scsi: lpfc: Fix crash receiving ELS while detaching driver 2017-10-02 22:46:33 -04:00
lpfc_bsg.h scsi: lpfc: Update copyrights 2017-02-22 18:41:44 -05:00
lpfc_compat.h scsi: lpfc: Update copyrights 2017-02-22 18:41:44 -05:00
lpfc_crtn.h scsi: lpfc: Convert timers to use timer_setup() 2017-11-01 11:27:07 -07:00
lpfc_ct.c scsi: lpfc: Linux LPFC driver does not process all RSCNs 2017-12-04 20:32:54 -05:00
lpfc_debugfs.c scsi: lpfc: Adjust default value of lpfc_nvmet_mrq 2017-12-04 20:32:54 -05:00
lpfc_debugfs.h scsi: lpfc: avoid false-positive gcc-8 warning 2017-08-25 18:26:52 -04:00
lpfc_disc.h scsi: lpfc: Correct driver deregistrations with host nvme transport 2017-12-04 20:32:54 -05:00
lpfc_els.c scsi: lpfc: Linux LPFC driver does not process all RSCNs 2017-12-04 20:32:54 -05:00
lpfc_hbadisc.c scsi: lpfc: correct port registrations with nvme_fc 2017-12-04 20:32:54 -05:00
lpfc_hw4.h scsi: lpfc: Expand WQE capability of every NVME hardware queue 2017-12-04 20:32:53 -05:00
lpfc_hw.h scsi: lpfc: Add Buffer to Buffer credit recovery support 2017-08-24 22:29:43 -04:00
lpfc_ids.h scsi: lpfc: Update copyrights 2017-02-22 18:41:44 -05:00
lpfc_init.c scsi: lpfc: Adjust default value of lpfc_nvmet_mrq 2017-12-04 20:32:54 -05:00
lpfc_logmsg.h scsi: lpfc: Update copyrights 2017-02-22 18:41:44 -05:00
lpfc_mbox.c scsi: lpfc: Add Buffer to Buffer credit recovery support 2017-08-24 22:29:43 -04:00
lpfc_mem.c scsi: lpfc: Replace PCI pool old API 2017-08-07 14:04:01 -04:00
lpfc_nl.h scsi: lpfc: Update copyrights 2017-02-22 18:41:44 -05:00
lpfc_nportdisc.c scsi: lpfc: Fix crash receiving ELS while detaching driver 2017-10-02 22:46:33 -04:00
lpfc_nvme.c scsi: lpfc: Fix crash during driver unload with running nvme traffic 2017-12-04 20:32:55 -05:00
lpfc_nvme.h scsi: lpfc: Correct driver deregistrations with host nvme transport 2017-12-04 20:32:54 -05:00
lpfc_nvmet.c scsi: lpfc: Fix crash during driver unload with running nvme traffic 2017-12-04 20:32:55 -05:00
lpfc_nvmet.h scsi: lpfc: Adjust default value of lpfc_nvmet_mrq 2017-12-04 20:32:54 -05:00
lpfc_scsi.c scsi: lpfc: Convert timers to use timer_setup() 2017-11-01 11:27:07 -07:00
lpfc_scsi.h scsi: lpfc: Update copyrights 2017-02-22 18:41:44 -05:00
lpfc_sli4.h scsi: lpfc: Handle XRI_ABORTED_CQE in soft IRQ 2017-12-04 20:32:53 -05:00
lpfc_sli.c scsi: lpfc: Fix NVME LS abort_xri 2017-12-04 20:32:54 -05:00
lpfc_sli.h scsi: lpfc: Add auto EQ delay logic 2017-06-12 21:37:31 -04:00
lpfc_version.h scsi: lpfc: change version to 11.4.0.4 2017-10-02 22:46:42 -04:00
lpfc_vport.c scsi: lpfc: Disable NPIV support if NVME is enabled 2017-10-02 22:46:39 -04:00
lpfc_vport.h scsi: lpfc: Update copyrights 2017-02-22 18:41:44 -05:00
lpfc.h scsi: lpfc: Raise maximum NVME sg list size for 256 elements 2017-12-04 20:32:54 -05:00
Makefile scsi: lpfc: Update copyrights 2017-02-22 18:41:44 -05:00