]> git.baikalelectronics.ru Git - kernel.git/commit
genirq: Do not copy affinity before set
authorThomas Gleixner <tglx@linutronix.de>
Mon, 7 Feb 2011 15:02:20 +0000 (16:02 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Sat, 19 Feb 2011 11:58:07 +0000 (12:58 +0100)
commit4ae338e80437223894ed81439819fd22f1dec176
treef758675da3bb37282eefd50e57456d09b208b452
parent76963039a6e7a5c23bf64208738cbd27d2340b0a
genirq: Do not copy affinity before set

While rumaging through arch code I found that there are a few
workarounds which deal with the fact that the initial affinity setting
from request_irq() copies the mask into irq_data->affinity before the
chip code is called. In the normal path we unconditionally copy the
mask when the chip code returns 0.

Copy after the code is called and add a return code
IRQ_SET_MASK_OK_NOCOPY for the chip functions, which prevents the
copy. That way we see the real mask when the chip function decided to
truncate it further as some arches do. IRQ_SET_MASK_OK is 0, which is
the current behaviour.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
include/linux/irq.h
kernel/irq/internals.h
kernel/irq/manage.c
kernel/irq/proc.c