From 943d7b0ae200b729ff6c59ce0ef51e05014468c2 Mon Sep 17 00:00:00 2001 From: Brian King <brking@us.ibm.com> Date: Sun, 23 May 2004 01:25:01 -0500 Subject: [PATCH] [PATCH] ipr fix for ioa reset timeout oops This patch fixes an oops discovered in test which can occur on bad hardware if the ipr adapter times out coming operational. --- drivers/scsi/ipr.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c index b081efc8510c..119c674e79a6 100644 --- a/drivers/scsi/ipr.c +++ b/drivers/scsi/ipr.c @@ -3179,6 +3179,7 @@ static irqreturn_t ipr_handle_other_interrupt(struct ipr_ioa_cfg *ioa_cfg, writel(IPR_PCII_IOA_TRANS_TO_OPER, ioa_cfg->regs.clr_interrupt_reg); int_reg = readl(ioa_cfg->regs.sense_interrupt_reg); + list_del(&ioa_cfg->reset_cmd->queue); del_timer(&ioa_cfg->reset_cmd->timer); ipr_reset_ioa_job(ioa_cfg->reset_cmd); } else { @@ -4806,6 +4807,7 @@ static int ipr_reset_enable_ioa(struct ipr_cmnd *ipr_cmd) ipr_cmd->timer.expires = jiffies + IPR_OPERATIONAL_TIMEOUT; ipr_cmd->timer.function = (void (*)(unsigned long))ipr_timeout; add_timer(&ipr_cmd->timer); + list_add_tail(&ipr_cmd->queue, &ioa_cfg->pending_q); LEAVE; return IPR_RC_JOB_RETURN; -- 2.30.9