block: Don't disable interrupts in trigger_softirq()

trigger_softirq() is always invoked as a SMP-function call which is
always invoked with disables interrupts.

Don't disable interrupt in trigger_softirq() because interrupts are
already disabled.

Reviewed-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Sebastian Andrzej Siewior 2019-11-18 12:01:22 +01:00 committed by Jens Axboe
parent 708edafa88
commit de678bc63c

View File

@ -42,17 +42,13 @@ static __latent_entropy void blk_done_softirq(struct softirq_action *h)
static void trigger_softirq(void *data) static void trigger_softirq(void *data)
{ {
struct request *rq = data; struct request *rq = data;
unsigned long flags;
struct list_head *list; struct list_head *list;
local_irq_save(flags);
list = this_cpu_ptr(&blk_cpu_done); list = this_cpu_ptr(&blk_cpu_done);
list_add_tail(&rq->ipi_list, list); list_add_tail(&rq->ipi_list, list);
if (list->next == &rq->ipi_list) if (list->next == &rq->ipi_list)
raise_softirq_irqoff(BLOCK_SOFTIRQ); raise_softirq_irqoff(BLOCK_SOFTIRQ);
local_irq_restore(flags);
} }
/* /*