Commit d43da75f authored by Jens Axboe's avatar Jens Axboe Committed by Linus Torvalds

[PATCH] cciss: softirq handler needs to save interrupt flags

The softirq rq completion handler needs to save/restore interrupt flags
appropriately.
Signed-off-by: default avatarJens Axboe <axboe@suse.de>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent e8a82fd0
...@@ -2183,6 +2183,7 @@ static void cciss_softirq_done(struct request *rq) ...@@ -2183,6 +2183,7 @@ static void cciss_softirq_done(struct request *rq)
{ {
CommandList_struct *cmd = rq->completion_data; CommandList_struct *cmd = rq->completion_data;
ctlr_info_t *h = hba[cmd->ctlr]; ctlr_info_t *h = hba[cmd->ctlr];
unsigned long flags;
u64bit temp64; u64bit temp64;
int i, ddir; int i, ddir;
...@@ -2205,10 +2206,10 @@ static void cciss_softirq_done(struct request *rq) ...@@ -2205,10 +2206,10 @@ static void cciss_softirq_done(struct request *rq)
printk("Done with %p\n", rq); printk("Done with %p\n", rq);
#endif /* CCISS_DEBUG */ #endif /* CCISS_DEBUG */
spin_lock_irq(&h->lock); spin_lock_irqsave(&h->lock, flags);
end_that_request_last(rq, rq->errors); end_that_request_last(rq, rq->errors);
cmd_free(h, cmd,1); 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 /* checks the status of the job and calls complete buffers to mark all
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment