aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/irq/irqdesc.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2012-11-03 11:52:09 +0100
committerThomas Gleixner <tglx@linutronix.de>2012-11-12 20:07:18 +0100
commit04aa530ec04f61875b99c12721162e2964e3318c (patch)
tree832a096a2434e6c1c0ceb44335436a78b12f22b8 /kernel/irq/irqdesc.c
parentirq: Set CPU affinity right on thread creation (diff)
downloadlinux-dev-04aa530ec04f61875b99c12721162e2964e3318c.tar.xz
linux-dev-04aa530ec04f61875b99c12721162e2964e3318c.zip
genirq: Always force thread affinity
Sankara reported that the genirq core code fails to adjust the affinity of an interrupt thread in several cases: 1) On request/setup_irq() the call to setup_affinity() happens before the new action is registered, so the new thread is not notified. 2) For secondary shared interrupts nothing notifies the new thread to change its affinity. 3) Interrupts which have the IRQ_NO_BALANCE flag set are not moving the thread either. Fix this by setting the thread affinity flag right on thread creation time. This ensures that under all circumstances the thread moves to the right place. Requires a check in irq_thread_check_affinity for an existing affinity mask (CONFIG_CPU_MASK_OFFSTACK=y) Reported-and-tested-by: Sankara Muthukrishnan <sankara.m@gmail.com> Cc: stable@vger.kernel.org Link: http://lkml.kernel.org/r/alpine.LFD.2.02.1209041738200.2754@ionos Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/irq/irqdesc.c')
0 files changed, 0 insertions, 0 deletions