scsi: mpt3sas: Don't abort I/Os issued to NVMe drives while processing Async Broadcas...
authorChaitra P B <chaitra.basappa@broadcom.com>
Thu, 31 May 2018 10:34:47 +0000 (06:34 -0400)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 19 Jun 2018 01:05:32 +0000 (21:05 -0400)
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>
drivers/scsi/mpt3sas/mpt3sas_scsih.c

index b8d131a455d01c207057d06d79c3d57ae2cdada5..d31f0ccdf688f1536e1aeb5aa925b84dfcf5f9ef 100644 (file)
@@ -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;