mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-07 00:59:06 +00:00
[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 <axboe@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
e8a82fd030
commit
d43da75fd6
1 changed files with 3 additions and 2 deletions
|
@ -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)
|
||||||
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
|
||||||
|
|
Loading…
Reference in a new issue