linux/drivers/scsi/lpfc
James Smart 7438273fa2 scsi: lpfc: Fix crash in blk_mq layer when executing modprobe -r lpfc
modprobe -r lpfc produces the following:

Call Trace:
 __blk_mq_run_hw_queue+0xa2/0xb0
 __blk_mq_delay_run_hw_queue+0x9d/0xb0
 ? blk_mq_hctx_has_pending+0x32/0x80
 blk_mq_run_hw_queue+0x50/0xd0
 blk_mq_sched_insert_request+0x110/0x1b0
 blk_execute_rq_nowait+0x76/0x180
 nvme_keep_alive_work+0x8a/0xd0 [nvme_core]
 process_one_work+0x17f/0x440
 worker_thread+0x126/0x3c0
 ? manage_workers.isra.24+0x2a0/0x2a0
 kthread+0xd1/0xe0
 ? insert_kthread_work+0x40/0x40
 ret_from_fork_nospec_begin+0x21/0x21
 ? insert_kthread_work+0x40/0x40

However, rmmod lpfc would run correctly.

When an nvme remoteport is unregistered with the host nvme transport, it
needs to set the remoteport->dev_loss_tmo value 0 to indicate an immediate
termination of device loss and prevent any further keep alives to that
rport.  The driver was never setting dev_loss_tmo causing the nvme
transport to continue to send the keep alive.

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>
2018-05-28 22:40:33 -04:00
..
lpfc_attr.c scsi: lpfc: correct oversubscription of nvme io requests for an adapter 2018-05-28 22:40:33 -04: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 spelling mistakes: "mabilbox" and "maibox" 2018-05-08 01:26:44 -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: Streamline NVME Targe6t WQE setup 2018-03-12 21:55:23 -04:00
lpfc_ct.c scsi: lpfc: Correct missing remoteport registration during link bounces 2018-04-18 19:34:06 -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: Change Copyright of 12.0.0.0 modified files to 2018 2018-02-22 20:39:30 -05: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: Fix driver not recovering NVME rports during target link faults 2018-04-18 19:34:05 -04:00
lpfc_hbadisc.c scsi: lpfc: Fix MDS diagnostics failure (Rx < Tx) 2018-05-28 22:40:32 -04:00
lpfc_hw4.h scsi: lpfc: Comment cleanup regarding Broadcom copyright header 2018-05-08 01:03:16 -04:00
lpfc_hw.h scsi: lpfc: Change Copyright of 12.0.0.0 modified files to 2018 2018-02-22 20:39:30 -05:00
lpfc_ids.h scsi: lpfc: Change Copyright of 12.0.0.0 modified files to 2018 2018-02-22 20:39:30 -05:00
lpfc_init.c scsi: lpfc: fix spelling mistakes: "mabilbox" and "maibox" 2018-05-08 01:26:44 -04:00
lpfc_logmsg.h scsi: lpfc: Update copyrights 2017-02-22 18:41:44 -05:00
lpfc_mbox.c scsi: lpfc: Add 64G link speed support 2018-02-22 20:39:29 -05:00
lpfc_mem.c scsi: lpfc: Update 11.4.0.7 modified files for 2018 Copyright 2018-02-12 11:43:24 -05:00
lpfc_nl.h scsi: lpfc: Update copyrights 2017-02-22 18:41:44 -05:00
lpfc_nportdisc.c scsi: lpfc: correct oversubscription of nvme io requests for an adapter 2018-05-28 22:40:33 -04:00
lpfc_nvme.c scsi: lpfc: Fix crash in blk_mq layer when executing modprobe -r lpfc 2018-05-28 22:40:33 -04:00
lpfc_nvme.h scsi: lpfc: Comment cleanup regarding Broadcom copyright header 2018-05-08 01:03:16 -04:00
lpfc_nvmet.c scsi: lpfc: make several unions static, fix non-ANSI prototype 2018-03-14 23:36:37 -04:00
lpfc_nvmet.h scsi: lpfc: Enlarge nvmet asynchronous receive buffer counts 2018-04-18 19:34:02 -04:00
lpfc_scsi.c scsi: lpfc: Comment cleanup regarding Broadcom copyright header 2018-05-08 01:03:16 -04:00
lpfc_scsi.h scsi: lpfc: Comment cleanup regarding Broadcom copyright header 2018-05-08 01:03:16 -04:00
lpfc_sli4.h scsi: lpfc: Fix WQ/CQ creation for older asic's. 2018-04-18 19:34:04 -04:00
lpfc_sli.c scsi: lpfc: Fix MDS diagnostics failure (Rx < Tx) 2018-05-28 22:40:32 -04:00
lpfc_sli.h scsi: lpfc: Fix mailbox wait for POST_SGL mbox command 2018-03-12 21:55:24 -04:00
lpfc_version.h scsi: lpfc: Comment cleanup regarding Broadcom copyright header 2018-05-08 01:03:16 -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: Enlarge nvmet asynchronous receive buffer counts 2018-04-18 19:34:02 -04:00
Makefile scsi: lpfc: Update copyrights 2017-02-22 18:41:44 -05:00