genirq: Provide advanced irq chip functions
authorThomas Gleixner <tglx@linutronix.de>
Mon, 27 Sep 2010 12:44:32 +0000 (12:44 +0000)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 4 Oct 2010 10:43:32 +0000 (12:43 +0200)
commitf8822657e799b02c55556c99a601261e207a299d
tree5a263bd4df600d7b090d1216e2b8462c121a7588
parent6b8ff3120c758340505dddf08ad685ebb841d5d5
genirq: Provide advanced irq chip functions

The low level irq chip functions want access to irq_desc->irq_data.
Provide new functions which hand down irq_data instead of the irq
number so these functions avoid to call irq_to_desc() which is a radix
tree lookup in case of sparse irq.

This provides all the old functions except one: end(). end() is a
relict of __do_IRQ() and will just go away with the __do_IRQ() code.

The replacement for set_affinity() has an extra argument "bool
force". The reason for this is to notify the low level code, that the
move has to be done right away and cannot be delayed until the next
interrupt happens. That's necessary to handle the irq fixup on cpu
unplug in the generic code.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
LKML-Reference: <20100927121841.742126604@linutronix.de>
Reviewed-by: H. Peter Anvin <hpa@zytor.com>
Reviewed-by: Ingo Molnar <mingo@elte.hu>
include/linux/irq.h