aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2011-02-09 07:16:52 -0500
committerThomas Gleixner <tglx@linutronix.de>2011-02-19 06:58:14 -0500
commite6bea9c404699223322d7411c6f2ceaec02fa83c (patch)
treec006048322aae74b4d60ec2a2a16e1fd941af09b
parentdbec07bac614a61e3392c1e7c08cc6a49ad43f7a (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.h2
-rw-r--r--kernel/irq/irqdesc.c4
-rw-r--r--kernel/irq/settings.h7
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
18extern int noirqdebug; 20extern 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
247struct irq_desc irq_desc[NR_IRQS] __cacheline_aligned_in_smp = { 247struct 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 */
5enum {
6 _IRQ_DEFAULT_INIT_FLAGS = IRQ_DEFAULT_INIT_FLAGS,
7};