do_cciss_intr takes the controller lock on entry, and if something goes wrong, it calls fail_all_cmds which tries to take the same lock. Signed-off-by: Dave Jones <davej@xxxxxxxxxx> diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index 7d70496..1c57583 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c @@ -2756,6 +2756,7 @@ static irqreturn_t do_cciss_intr(int irq, void *dev_id) printk(KERN_WARNING "cciss: controller cciss%d failed, stopping.\n", h->ctlr); + spin_unlock_irqrestore(CCISS_LOCK(h->ctlr), flags); fail_all_cmds(h->ctlr); return IRQ_HANDLED; } -- http://www.codemonkey.org.uk - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html