diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2011-02-09 07:16:52 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2011-02-19 06:58:14 -0500 |
commit | e6bea9c404699223322d7411c6f2ceaec02fa83c (patch) | |
tree | c006048322aae74b4d60ec2a2a16e1fd941af09b | |
parent | dbec07bac614a61e3392c1e7c08cc6a49ad43f7a (diff) |
genirq: Protect tglx from tripping over his own feet
The irq_desc.status field will either go away or renamed to
settings. Anyway we need to maintain compatibility to avoid breaking
the world and some more. While moving bits into the core, I need to
avoid that I use any of the still existing IRQ_ bits in the core code
by typos. So that file will hold the inline wrappers and some nasty
CPP tricks to break the build when typoed.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r-- | kernel/irq/internals.h | 2 | ||||
-rw-r--r-- | kernel/irq/irqdesc.c | 4 | ||||
-rw-r--r-- | kernel/irq/settings.h | 7 |
3 files changed, 11 insertions, 2 deletions
diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h index ae96e688f4e1..8f200310a952 100644 --- a/kernel/irq/internals.h +++ b/kernel/irq/internals.h | |||
@@ -13,6 +13,8 @@ | |||
13 | # define IRQ_BITMAP_BITS NR_IRQS | 13 | # define IRQ_BITMAP_BITS NR_IRQS |
14 | #endif | 14 | #endif |
15 | 15 | ||
16 | #include "settings.h" | ||
17 | |||
16 | #define istate core_internal_state__do_not_mess_with_it | 18 | #define istate core_internal_state__do_not_mess_with_it |
17 | 19 | ||
18 | extern int noirqdebug; | 20 | extern int noirqdebug; |
diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c index 6f6644f819dd..8b87f2ce0203 100644 --- a/kernel/irq/irqdesc.c +++ b/kernel/irq/irqdesc.c | |||
@@ -79,7 +79,7 @@ static void desc_set_defaults(unsigned int irq, struct irq_desc *desc, int node) | |||
79 | desc->irq_data.chip_data = NULL; | 79 | desc->irq_data.chip_data = NULL; |
80 | desc->irq_data.handler_data = NULL; | 80 | desc->irq_data.handler_data = NULL; |
81 | desc->irq_data.msi_desc = NULL; | 81 | desc->irq_data.msi_desc = NULL; |
82 | desc->status = IRQ_DEFAULT_INIT_FLAGS; | 82 | desc->status = _IRQ_DEFAULT_INIT_FLAGS; |
83 | desc->handle_irq = handle_bad_irq; | 83 | desc->handle_irq = handle_bad_irq; |
84 | desc->depth = 1; | 84 | desc->depth = 1; |
85 | desc->irq_count = 0; | 85 | desc->irq_count = 0; |
@@ -246,7 +246,7 @@ int __init early_irq_init(void) | |||
246 | 246 | ||
247 | struct irq_desc irq_desc[NR_IRQS] __cacheline_aligned_in_smp = { | 247 | struct irq_desc irq_desc[NR_IRQS] __cacheline_aligned_in_smp = { |
248 | [0 ... NR_IRQS-1] = { | 248 | [0 ... NR_IRQS-1] = { |
249 | .status = IRQ_DEFAULT_INIT_FLAGS, | 249 | .status = _IRQ_DEFAULT_INIT_FLAGS, |
250 | .handle_irq = handle_bad_irq, | 250 | .handle_irq = handle_bad_irq, |
251 | .depth = 1, | 251 | .depth = 1, |
252 | .lock = __RAW_SPIN_LOCK_UNLOCKED(irq_desc->lock), | 252 | .lock = __RAW_SPIN_LOCK_UNLOCKED(irq_desc->lock), |
diff --git a/kernel/irq/settings.h b/kernel/irq/settings.h new file mode 100644 index 000000000000..610f55597ce7 --- /dev/null +++ b/kernel/irq/settings.h | |||
@@ -0,0 +1,7 @@ | |||
1 | /* | ||
2 | * Internal header to deal with irq_desc->status which will be renamed | ||
3 | * to irq_desc->settings. | ||
4 | */ | ||
5 | enum { | ||
6 | _IRQ_DEFAULT_INIT_FLAGS = IRQ_DEFAULT_INIT_FLAGS, | ||
7 | }; | ||