scsi: megaraid_sas: For SRIOV enabled firmware, ensure VF driver waits for 30secs...
authorKashyap Desai <kashyap.desai@broadcom.com>
Fri, 21 Oct 2016 13:33:29 +0000 (06:33 -0700)
committerSasha Levin <alexander.levin@verizon.com>
Fri, 13 Jan 2017 01:56:52 +0000 (20:56 -0500)
[ Upstream commit 18e1c7f68a5814442abad849abe6eacbf02ffd7c ]

For SRIOV enabled firmware, if there is a OCR(online controller reset)
possibility driver set the convert flag to 1, which is not happening if
there are outstanding commands even after 180 seconds.  As driver does
not set convert flag to 1 and still making the OCR to run, VF(Virtual
function) driver is directly writing on to the register instead of
waiting for 30 seconds. Setting convert flag to 1 will cause VF driver
will wait for 30 secs before going for reset.

CC: stable@vger.kernel.org
Signed-off-by: Kiran Kumar Kasturi <kiran-kumar.kasturi@broadcom.com>
Signed-off-by: Sumit Saxena <sumit.saxena@broadcom.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Tomas Henzl <thenzl@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
drivers/scsi/megaraid/megaraid_sas_fusion.c

index 5a0800d19970d4fedff5332a73ef397e611f7914..bd6f71b97710e447fc11b579843c9e922e5bbc67 100644 (file)
@@ -2490,6 +2490,7 @@ int megasas_wait_for_outstanding_fusion(struct megasas_instance *instance,
                printk("megaraid_sas: pending commands remain after waiting, "
                       "will reset adapter scsi%d.\n",
                       instance->host->host_no);
+               *convert = 1;
                retval = 1;
        }
 out: