]> git.baikalelectronics.ru Git - kernel.git/commit
genirq: Provide irq_fixup_move_pending()
authorThomas Gleixner <tglx@linutronix.de>
Mon, 19 Jun 2017 23:37:19 +0000 (01:37 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 22 Jun 2017 16:21:13 +0000 (18:21 +0200)
commit5b2804a6e477dcee82006f1a83e355be32378295
tree3f64719fa46b4edc5077b0342cf625954eaeb52f
parentb5ad2e0fcb523b1d8401d2fc5b193b5c4fcc8931
genirq: Provide irq_fixup_move_pending()

If an CPU goes offline, the interrupts are migrated away, but a eventually
pending interrupt move, which has not yet been made effective is kept
pending even if the outgoing CPU is the sole target of the pending affinity
mask. What's worse is, that the pending affinity mask is discarded even if
it would contain a valid subset of the online CPUs.

Implement a helper function which allows to avoid these issues.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Keith Busch <keith.busch@intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Christoph Hellwig <hch@lst.de>
Link: http://lkml.kernel.org/r/20170619235444.691345468@linutronix.de
include/linux/irq.h
kernel/irq/migration.c