]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
scsi: megaraid_sas: Call megasas_complete_cmd_dpc_fusion every 1 second while there...
authorShivasharan S <shivasharan.srikanteshwara@broadcom.com>
Wed, 23 Aug 2017 11:46:58 +0000 (04:46 -0700)
committerJack Vogel <jack.vogel@oracle.com>
Thu, 8 Mar 2018 02:44:04 +0000 (18:44 -0800)
megasas_wait_for_outstanding_fusion checks for pending commands every 1
second. But megasas_complete_cmd_dpc_fusion is only called every 5
seconds.  If the commands are already completed by firmware, there is an
additional delay of 5 seconds before driver will process completion for
these commands.

Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com>
Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
Reviewed-by: Tomas Henzl <thenzl@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Orabug: 27625001
Signed-off-by: Jack Vogel <jack.vogel@oracle.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/megaraid/megaraid_sas_fusion.c

index 482217ca0cccb740b8470507fb1abcf412dc7fca..4a123e0bd84e307cc99c59792c13370ce5b27c0a 100644 (file)
@@ -3559,6 +3559,7 @@ int megasas_wait_for_outstanding_fusion(struct megasas_instance *instance,
                        }
                }
 
+               megasas_complete_cmd_dpc_fusion((unsigned long)instance);
                outstanding = atomic_read(&instance->fw_outstanding);
                if (!outstanding)
                        goto out;
@@ -3567,8 +3568,6 @@ int megasas_wait_for_outstanding_fusion(struct megasas_instance *instance,
                        dev_notice(&instance->pdev->dev, "[%2d]waiting for %d "
                               "commands to complete for scsi%d\n", i,
                               outstanding, instance->host->host_no);
-                       megasas_complete_cmd_dpc_fusion(
-                               (unsigned long)instance);
                }
                msleep(1000);
        }