From: Jens Axboe Date: Tue, 7 Feb 2006 14:00:01 +0000 (+0100) Subject: [PATCH] cciss: softirq handler needs to save interrupt flags X-Git-Tag: v2.6.16-rc3~136 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d43da75fd6be4197c280903e1553eafcc39218e2;p=linux-2.6 [PATCH] cciss: softirq handler needs to save interrupt flags The softirq rq completion handler needs to save/restore interrupt flags appropriately. Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds --- diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index 12d7b9bdfa..0d65394707 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c @@ -2183,6 +2183,7 @@ static void cciss_softirq_done(struct request *rq) { CommandList_struct *cmd = rq->completion_data; ctlr_info_t *h = hba[cmd->ctlr]; + unsigned long flags; u64bit temp64; int i, ddir; @@ -2205,10 +2206,10 @@ static void cciss_softirq_done(struct request *rq) printk("Done with %p\n", rq); #endif /* CCISS_DEBUG */ - spin_lock_irq(&h->lock); + spin_lock_irqsave(&h->lock, flags); end_that_request_last(rq, rq->errors); cmd_free(h, cmd,1); - spin_unlock_irq(&h->lock); + spin_unlock_irqrestore(&h->lock, flags); } /* checks the status of the job and calls complete buffers to mark all