Commit 83e67960 authored by Shivasharan S's avatar Shivasharan S Committed by Greg Kroah-Hartman

scsi: megaraid_sas: Fix msleep granularity

[ Upstream commit 9155cf30 ]

In megasas_transition_to_ready() driver waits 180seconds for controller to
change FW state. Here we are calling msleep(1) in a loop for this.  As
explained in timers-howto.txt, msleep(1) will actually sleep longer than
1ms. If a faulty controller is connected, we will end up waiting for much
more than 180 seconds causing unnecessary delays during load.

Change the granularity of msleep() call from 1ms to 1000ms.
Signed-off-by: default avatarShivasharan S <shivasharan.srikanteshwara@broadcom.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent ff997bf1
...@@ -3894,12 +3894,12 @@ megasas_transition_to_ready(struct megasas_instance *instance, int ocr) ...@@ -3894,12 +3894,12 @@ megasas_transition_to_ready(struct megasas_instance *instance, int ocr)
/* /*
* The cur_state should not last for more than max_wait secs * The cur_state should not last for more than max_wait secs
*/ */
for (i = 0; i < (max_wait * 1000); i++) { for (i = 0; i < max_wait; i++) {
curr_abs_state = instance->instancet-> curr_abs_state = instance->instancet->
read_fw_status_reg(instance->reg_set); read_fw_status_reg(instance->reg_set);
if (abs_state == curr_abs_state) { if (abs_state == curr_abs_state) {
msleep(1); msleep(1000);
} else } else
break; break;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment