diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/scsi/ipr.c | 4 | ||||
-rw-r--r-- | drivers/scsi/ipr.h | 1 |
2 files changed, 4 insertions, 1 deletions
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c index e16a9cf442c1..73e24b48dced 100644 --- a/drivers/scsi/ipr.c +++ b/drivers/scsi/ipr.c | |||
@@ -3109,7 +3109,7 @@ static void ipr_worker_thread(struct work_struct *work) | |||
3109 | kref_put(&dump->kref, ipr_release_dump); | 3109 | kref_put(&dump->kref, ipr_release_dump); |
3110 | 3110 | ||
3111 | spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); | 3111 | spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); |
3112 | if (ioa_cfg->sdt_state == DUMP_OBTAINED) | 3112 | if (ioa_cfg->sdt_state == DUMP_OBTAINED && !ioa_cfg->dump_timeout) |
3113 | ipr_initiate_ioa_reset(ioa_cfg, IPR_SHUTDOWN_NONE); | 3113 | ipr_initiate_ioa_reset(ioa_cfg, IPR_SHUTDOWN_NONE); |
3114 | spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); | 3114 | spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); |
3115 | return; | 3115 | return; |
@@ -7447,6 +7447,7 @@ static int ipr_reset_wait_for_dump(struct ipr_cmnd *ipr_cmd) | |||
7447 | else if (ioa_cfg->sdt_state == READ_DUMP) | 7447 | else if (ioa_cfg->sdt_state == READ_DUMP) |
7448 | ioa_cfg->sdt_state = ABORT_DUMP; | 7448 | ioa_cfg->sdt_state = ABORT_DUMP; |
7449 | 7449 | ||
7450 | ioa_cfg->dump_timeout = 1; | ||
7450 | ipr_cmd->job_step = ipr_reset_alert; | 7451 | ipr_cmd->job_step = ipr_reset_alert; |
7451 | 7452 | ||
7452 | return IPR_RC_JOB_CONTINUE; | 7453 | return IPR_RC_JOB_CONTINUE; |
@@ -7611,6 +7612,7 @@ static int ipr_reset_restore_cfg_space(struct ipr_cmnd *ipr_cmd) | |||
7611 | 7612 | ||
7612 | if (GET_DUMP == ioa_cfg->sdt_state) { | 7613 | if (GET_DUMP == ioa_cfg->sdt_state) { |
7613 | ioa_cfg->sdt_state = READ_DUMP; | 7614 | ioa_cfg->sdt_state = READ_DUMP; |
7615 | ioa_cfg->dump_timeout = 0; | ||
7614 | if (ioa_cfg->sis64) | 7616 | if (ioa_cfg->sis64) |
7615 | ipr_reset_start_timer(ipr_cmd, IPR_SIS64_DUMP_TIMEOUT); | 7617 | ipr_reset_start_timer(ipr_cmd, IPR_SIS64_DUMP_TIMEOUT); |
7616 | else | 7618 | else |
diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h index 0cbf58f6ae5d..6d257e0dd6a5 100644 --- a/drivers/scsi/ipr.h +++ b/drivers/scsi/ipr.h | |||
@@ -1385,6 +1385,7 @@ struct ipr_ioa_cfg { | |||
1385 | u8 needs_warm_reset:1; | 1385 | u8 needs_warm_reset:1; |
1386 | u8 msi_received:1; | 1386 | u8 msi_received:1; |
1387 | u8 sis64:1; | 1387 | u8 sis64:1; |
1388 | u8 dump_timeout:1; | ||
1388 | 1389 | ||
1389 | u8 revid; | 1390 | u8 revid; |
1390 | 1391 | ||