On Mon, Nov 18, 2019 at 7:03 PM Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> wrote: > > 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. > > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> > --- > block/blk-softirq.c | 4 ---- > 1 file changed, 4 deletions(-) > > diff --git a/block/blk-softirq.c b/block/blk-softirq.c > index 457d9ba3eb204..6e7ec87d49faa 100644 > --- a/block/blk-softirq.c > +++ b/block/blk-softirq.c > @@ -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); > } Reviewed-by: Ming Lei <ming.lei@xxxxxxxxxx> -- Ming Lei