Skip to content

Commit

Permalink
[SCSI] megaraid_sas: Add resetwaittime module parameter
Browse files Browse the repository at this point in the history
This allows a user to adjust the wait time in seconds after I/O timeout before
resetting the adapter.

Signed-off-by: Adam Radford <aradford@gmail.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
  • Loading branch information
adam radford authored and James Bottomley committed Aug 24, 2012
1 parent c5daa6a commit c007b8b
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
7 changes: 6 additions & 1 deletion drivers/scsi/megaraid/megaraid_sas_base.c
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,11 @@ module_param(throttlequeuedepth, int, S_IRUGO);
MODULE_PARM_DESC(throttlequeuedepth,
"Adapter queue depth when throttled due to I/O timeout. Default: 16");

int resetwaittime = MEGASAS_RESET_WAIT_TIME;
module_param(resetwaittime, int, S_IRUGO);
MODULE_PARM_DESC(resetwaittime, "Wait time in seconds after I/O timeout "
"before resetting adapter. Default: 180");

MODULE_LICENSE("GPL");
MODULE_VERSION(MEGASAS_VERSION);
MODULE_AUTHOR("megaraidlinux@lsi.com");
Expand Down Expand Up @@ -1778,7 +1783,7 @@ static int megasas_wait_for_outstanding(struct megasas_instance *instance)
return SUCCESS;
}

for (i = 0; i < wait_time; i++) {
for (i = 0; i < resetwaittime; i++) {

int outstanding = atomic_read(&instance->fw_outstanding);

Expand Down
5 changes: 3 additions & 2 deletions drivers/scsi/megaraid/megaraid_sas_fusion.c
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ int megasas_transition_to_ready(struct megasas_instance *instance, int ocr);
void megaraid_sas_kill_hba(struct megasas_instance *instance);

extern u32 megasas_dbg_lvl;
extern int resetwaittime;

/**
* megasas_enable_intr_fusion - Enables interrupts
Expand Down Expand Up @@ -2063,9 +2064,9 @@ megasas_check_reset_fusion(struct megasas_instance *instance,
int megasas_wait_for_outstanding_fusion(struct megasas_instance *instance)
{
int i, outstanding, retval = 0;
u32 fw_state, wait_time = MEGASAS_RESET_WAIT_TIME;
u32 fw_state;

for (i = 0; i < wait_time; i++) {
for (i = 0; i < resetwaittime; i++) {
/* Check if firmware is in fault state */
fw_state = instance->instancet->read_fw_status_reg(
instance->reg_set) & MFI_STATE_MASK;
Expand Down

0 comments on commit c007b8b

Please sign in to comment.