Problem description:
Hardware could timeout Fastpath IOs one second earlier than the timeout
provided by the host.

For non-RAID devices, driver provides timeout value based on OS provided
timeout value.
Under certain scenarios, if the OS provides a timeout value of 1 second,
due to above behavior hardware will timeout immediately.

Fix:
Increase timeout value for non-RAID fastpath IOs by 1second.

Signed-off-by: Shivasharan S <shivasharan.srikanteshw...@broadcom.com>
---
 drivers/scsi/megaraid/megaraid_sas_fusion.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c 
b/drivers/scsi/megaraid/megaraid_sas_fusion.c
index 57da0acae986..c2ad37d483a2 100644
--- a/drivers/scsi/megaraid/megaraid_sas_fusion.c
+++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c
@@ -2998,6 +2998,9 @@ megasas_build_syspd_fusion(struct megasas_instance 
*instance,
                pRAID_Context->timeout_value = cpu_to_le16(os_timeout_value);
                pRAID_Context->virtual_disk_tgt_id = cpu_to_le16(device_id);
        } else {
+               if (os_timeout_value)
+                       os_timeout_value++;
+
                /* system pd Fast Path */
                io_request->Function = MPI2_FUNCTION_SCSI_IO_REQUEST;
                timeout_limit = (scmd->device->type == TYPE_DISK) ?
-- 
2.16.1

Reply via email to