genirq: Create irq_data
authorThomas Gleixner <tglx@linutronix.de>
Mon, 27 Sep 2010 12:44:25 +0000 (12:44 +0000)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 4 Oct 2010 10:27:16 +0000 (12:27 +0200)
commitff7dcd44dd446db2c3e13bdedf2d52b8e0127f16
treeca03e829ea08aa536124a7777d99233dbbd89984
parent3bb9808e99bcc36eecb8e082bf70efb2a0bcdcb7
genirq: Create irq_data

Low level chip functions need access to irq_desc->handler_data,
irq_desc->chip_data and irq_desc->msi_desc. We hand down the irq
number to the low level functions, so they need to lookup irq_desc.
With sparse irq this means a radix tree lookup.

We could hand down irq_desc itself, but low level chip functions have
no need to fiddle with it directly and we want to restrict access to
irq_desc further.

Preparatory patch for new chip functions.

Note, that the ugly anon union/struct is there to avoid a full tree
wide clean up for now. This is not going to last 3 years like __do_IRQ()

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