From 12f19e40430777ad7b479d90d5cfa4a9fb97f748 Mon Sep 17 00:00:00 2001 From: Wayne Boyer Date: Wed, 14 Jul 2010 10:49:43 -0700 Subject: [PATCH] --- yaml --- r: 204241 b: refs/heads/master c: 1df79ca4223632113f14618833b8bb1727a8ca15 h: refs/heads/master i: 204239: 420cd57ba4d52ed2b02e502d38168bed618049db v: v3 --- [refs] | 2 +- trunk/drivers/scsi/ipr.c | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index a309ed288811..28df08700eab 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 82c57028e4bf6e2755de91b36223f57406746fa8 +refs/heads/master: 1df79ca4223632113f14618833b8bb1727a8ca15 diff --git a/trunk/drivers/scsi/ipr.c b/trunk/drivers/scsi/ipr.c index ce839c8eeea3..f73007db2bec 100644 --- a/trunk/drivers/scsi/ipr.c +++ b/trunk/drivers/scsi/ipr.c @@ -7169,12 +7169,15 @@ static int ipr_reset_next_stage(struct ipr_cmnd *ipr_cmd) stage_time = ioa_cfg->transop_timeout; ipr_cmd->job_step = ipr_ioafp_identify_hrrq; } else if (stage == IPR_IPL_INIT_STAGE_TRANSOP) { - ipr_cmd->job_step = ipr_ioafp_identify_hrrq; - maskval = IPR_PCII_IPL_STAGE_CHANGE; - maskval = (maskval << 32) | IPR_PCII_IOA_TRANS_TO_OPER; - writeq(maskval, ioa_cfg->regs.set_interrupt_mask_reg); - int_reg = readl(ioa_cfg->regs.sense_interrupt_mask_reg); - return IPR_RC_JOB_CONTINUE; + int_reg = readl(ioa_cfg->regs.sense_interrupt_reg32); + if (int_reg & IPR_PCII_IOA_TRANS_TO_OPER) { + ipr_cmd->job_step = ipr_ioafp_identify_hrrq; + maskval = IPR_PCII_IPL_STAGE_CHANGE; + maskval = (maskval << 32) | IPR_PCII_IOA_TRANS_TO_OPER; + writeq(maskval, ioa_cfg->regs.set_interrupt_mask_reg); + int_reg = readl(ioa_cfg->regs.sense_interrupt_mask_reg); + return IPR_RC_JOB_CONTINUE; + } } ipr_cmd->timer.data = (unsigned long) ipr_cmd;