block: Don't disable interrupts in trigger_softirq()
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Mon, 18 Nov 2019 11:01:22 +0000 (12:01 +0100)
committerJens Axboe <axboe@kernel.dk>
Mon, 18 Nov 2019 14:29:22 +0000 (07:29 -0700)
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>
block/blk-softirq.c

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