summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/mpt3sas
diff options
context:
space:
mode:
authorChaitra P B <chaitra.basappa@broadcom.com>2018-05-31 12:34:47 +0200
committerMartin K. Petersen <martin.petersen@oracle.com>2018-06-19 03:05:32 +0200
commit999c85134db71599698917775f35fd56ced2dc0a (patch)
tree98b1ee95fe660d4c3b0d8e08be8334360841d240 /drivers/scsi/mpt3sas
parentscsi: tcmu: remove useless code and clean up the code style. (diff)
downloadlinux-999c85134db71599698917775f35fd56ced2dc0a.tar.xz
linux-999c85134db71599698917775f35fd56ced2dc0a.zip
scsi: mpt3sas: Don't abort I/Os issued to NVMe drives while processing Async Broadcast primitive event.
Linux driver when receives Broadcast Asynchronous Event Notification (BAEN) from the controller firmware, checks all pending I/Os at the driver level and issues query task, abort task TMs. This is done in the driver to handle drives which are connected with multiple initiators and undergoing target resets. In the BAEN handling code, the I/Os issued to NVMe drives are also handled and query task and abort task TMs are issued, which are not necessary as there is no multi-initiator and no BAEN concept with NVMe drives. Hence when the driver checks for pending I/Os it skips NVMe drives at this moment. Signed-off-by: Chaitra P B <chaitra.basappa@broadcom.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/mpt3sas')
-rw-r--r--drivers/scsi/mpt3sas/mpt3sas_scsih.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
index b8d131a455d0..d31f0ccdf688 100644
--- a/drivers/scsi/mpt3sas/mpt3sas_scsih.c
+++ b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
@@ -7483,6 +7483,10 @@ _scsih_sas_broadcast_primitive_event(struct MPT3SAS_ADAPTER *ioc,
if (sas_device_priv_data->sas_target->flags &
MPT_TARGET_FLAGS_VOLUME)
continue;
+ /* skip PCIe devices */
+ if (sas_device_priv_data->sas_target->flags &
+ MPT_TARGET_FLAGS_PCIE_DEVICE)
+ continue;
handle = sas_device_priv_data->sas_target->handle;
lun = sas_device_priv_data->lun;