Skip to contentSkip to conversation

ipr fix for ioa reset timeout oops

PATCH In review Brian King 1 participant 1 message May 23, 2004

Subsystems (2)
lore
Share & tools
lore

Brian King

author maintainer
#0 lore raw

PATCH 3/5 ipr fix for ioa reset timeout oops

Signature · 4 lines
-- 
Brian King
eServer Storage I/O
IBM Linux Technology Center

This patch fixes an oops discovered in test which can occur on bad hardware if the ipr adapter times out coming operational.

---

 linux-2.6.6-bjking1/drivers/scsi/ipr.c |    2 ++
 1 files changed, 2 insertions(+)
drivers/scsi/ipr.c renamed from drivers/scsi/ipr.c~ipr_ioa_reset_timeout_oops +2 -0
diff -puN drivers/scsi/ipr.c~ipr_ioa_reset_timeout_oops drivers/scsi/ipr.c
@@ -3179,6 +3179,7 @@ static irqreturn_t ipr_handle_other_inte
 		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 i
 	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;

_