diff options
Diffstat (limited to 'drivers/scsi/megaraid/megaraid_sas.c')
-rw-r--r-- | drivers/scsi/megaraid/megaraid_sas.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/scsi/megaraid/megaraid_sas.c b/drivers/scsi/megaraid/megaraid_sas.c index c730bb145436..e21f638c00af 100644 --- a/drivers/scsi/megaraid/megaraid_sas.c +++ b/drivers/scsi/megaraid/megaraid_sas.c | |||
@@ -10,7 +10,7 @@ | |||
10 | * 2 of the License, or (at your option) any later version. | 10 | * 2 of the License, or (at your option) any later version. |
11 | * | 11 | * |
12 | * FILE : megaraid_sas.c | 12 | * FILE : megaraid_sas.c |
13 | * Version : v00.00.03.01 | 13 | * Version : v00.00.03.05 |
14 | * | 14 | * |
15 | * Authors: | 15 | * Authors: |
16 | * Sreenivas Bagalkote <Sreenivas.Bagalkote@lsil.com> | 16 | * Sreenivas Bagalkote <Sreenivas.Bagalkote@lsil.com> |
@@ -347,6 +347,7 @@ megasas_issue_polled(struct megasas_instance *instance, struct megasas_cmd *cmd) | |||
347 | * @cmd: Command to be issued | 347 | * @cmd: Command to be issued |
348 | * | 348 | * |
349 | * This function waits on an event for the command to be returned from ISR. | 349 | * This function waits on an event for the command to be returned from ISR. |
350 | * Max wait time is MEGASAS_INTERNAL_CMD_WAIT_TIME secs | ||
350 | * Used to issue ioctl commands. | 351 | * Used to issue ioctl commands. |
351 | */ | 352 | */ |
352 | static int | 353 | static int |
@@ -357,7 +358,8 @@ megasas_issue_blocked_cmd(struct megasas_instance *instance, | |||
357 | 358 | ||
358 | instance->instancet->fire_cmd(cmd->frame_phys_addr ,0,instance->reg_set); | 359 | instance->instancet->fire_cmd(cmd->frame_phys_addr ,0,instance->reg_set); |
359 | 360 | ||
360 | wait_event(instance->int_cmd_wait_q, (cmd->cmd_status != ENODATA)); | 361 | wait_event_timeout(instance->int_cmd_wait_q, (cmd->cmd_status != ENODATA), |
362 | MEGASAS_INTERNAL_CMD_WAIT_TIME*HZ); | ||
361 | 363 | ||
362 | return 0; | 364 | return 0; |
363 | } | 365 | } |
@@ -369,7 +371,8 @@ megasas_issue_blocked_cmd(struct megasas_instance *instance, | |||
369 | * | 371 | * |
370 | * MFI firmware can abort previously issued AEN comamnd (automatic event | 372 | * MFI firmware can abort previously issued AEN comamnd (automatic event |
371 | * notification). The megasas_issue_blocked_abort_cmd() issues such abort | 373 | * notification). The megasas_issue_blocked_abort_cmd() issues such abort |
372 | * cmd and blocks till it is completed. | 374 | * cmd and waits for return status. |
375 | * Max wait time is MEGASAS_INTERNAL_CMD_WAIT_TIME secs | ||
373 | */ | 376 | */ |
374 | static int | 377 | static int |
375 | megasas_issue_blocked_abort_cmd(struct megasas_instance *instance, | 378 | megasas_issue_blocked_abort_cmd(struct megasas_instance *instance, |
@@ -403,7 +406,8 @@ megasas_issue_blocked_abort_cmd(struct megasas_instance *instance, | |||
403 | /* | 406 | /* |
404 | * Wait for this cmd to complete | 407 | * Wait for this cmd to complete |
405 | */ | 408 | */ |
406 | wait_event(instance->abort_cmd_wait_q, (cmd->cmd_status != 0xFF)); | 409 | wait_event_timeout(instance->abort_cmd_wait_q, (cmd->cmd_status != 0xFF), |
410 | MEGASAS_INTERNAL_CMD_WAIT_TIME*HZ); | ||
407 | 411 | ||
408 | megasas_return_cmd(instance, cmd); | 412 | megasas_return_cmd(instance, cmd); |
409 | return 0; | 413 | return 0; |