All of lore.kernel.org
 help / color / mirror / Atom feed
* [GIT pull] core/core for 5.19-rc1
@ 2022-05-23  8:02 Thomas Gleixner
  2022-05-23  8:02 ` [GIT pull] core/debugobjects " Thomas Gleixner
                   ` (5 more replies)
  0 siblings, 6 replies; 16+ messages in thread
From: Thomas Gleixner @ 2022-05-23  8:02 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, x86

Linus,

please pull the latest core/core branch from:

   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core-core-2022-05-23

up to:  75d8cce128c5: lib/irq_poll: Prevent softirq pending leak in irq_poll_cpu_dead()


A single update for irqpoll:

  - Ensure that a raised soft interrupt is handled after pulling the
    blk_cpu_iopoll backlog from a unplugged CPU. This prevents that the CPU
    which runs that code reaches idle with soft interrupts pending.

Thanks,

	tglx

------------------>
Sebastian Andrzej Siewior (1):
      lib/irq_poll: Prevent softirq pending leak in irq_poll_cpu_dead()


 lib/irq_poll.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/lib/irq_poll.c b/lib/irq_poll.c
index 2f17b488d58e..2d5329a42105 100644
--- a/lib/irq_poll.c
+++ b/lib/irq_poll.c
@@ -188,14 +188,18 @@ EXPORT_SYMBOL(irq_poll_init);
 static int irq_poll_cpu_dead(unsigned int cpu)
 {
 	/*
-	 * If a CPU goes away, splice its entries to the current CPU
-	 * and trigger a run of the softirq
+	 * If a CPU goes away, splice its entries to the current CPU and
+	 * set the POLL softirq bit. The local_bh_disable()/enable() pair
+	 * ensures that it is handled. Otherwise the current CPU could
+	 * reach idle with the POLL softirq pending.
 	 */
+	local_bh_disable();
 	local_irq_disable();
 	list_splice_init(&per_cpu(blk_cpu_iopoll, cpu),
 			 this_cpu_ptr(&blk_cpu_iopoll));
 	__raise_softirq_irqoff(IRQ_POLL_SOFTIRQ);
 	local_irq_enable();
+	local_bh_enable();
 
 	return 0;
 }


^ permalink raw reply related	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2022-05-24  8:17 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-23  8:02 [GIT pull] core/core for 5.19-rc1 Thomas Gleixner
2022-05-23  8:02 ` [GIT pull] core/debugobjects " Thomas Gleixner
2022-05-24  0:22   ` pr-tracker-bot
2022-05-23  8:02 ` [GIT pull] irq/core " Thomas Gleixner
2022-05-24  0:02   ` Linus Torvalds
2022-05-24  8:17     ` Thomas Gleixner
2022-05-24  0:22   ` pr-tracker-bot
2022-05-23  8:02 ` [GIT pull] smp/core " Thomas Gleixner
2022-05-24  0:22   ` pr-tracker-bot
2022-05-23  8:02 ` [GIT pull] timers/core " Thomas Gleixner
2022-05-24  0:11   ` Linus Torvalds
2022-05-24  8:07     ` Thomas Gleixner
2022-05-24  0:22   ` pr-tracker-bot
2022-05-23  8:02 ` [GIT pull] x86/irq " Thomas Gleixner
2022-05-24  0:22   ` pr-tracker-bot
2022-05-24  0:22 ` [GIT pull] core/core " pr-tracker-bot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.