diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2011-02-07 14:19:55 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2011-02-19 06:58:14 -0500 |
commit | dbec07bac614a61e3392c1e7c08cc6a49ad43f7a (patch) | |
tree | df584e74c8b2fcbe10cce70fd910b4482093fe9a | |
parent | 35e857cbeb24e75c6f9a9312ac30454eee8c5950 (diff) |
genirq: Add internal state field to irq_desc
That field will contain internal state information which is not going
to be exposed to anything outside the core code - except via accessor
functions. I'm tired of everyone fiddling in irq_desc.status.
core_internal_state__do_not_mess_with_it is clear enough, annoying to
type and easy to grep for. Offenders will be tracked down and slapped
with stinking trouts.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r-- | include/linux/irqdesc.h | 3 | ||||
-rw-r--r-- | kernel/irq/internals.h | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h index 64794dec93b6..782bf9851a9f 100644 --- a/include/linux/irqdesc.h +++ b/include/linux/irqdesc.h | |||
@@ -19,6 +19,7 @@ struct timer_rand_state; | |||
19 | * @handle_irq: highlevel irq-events handler [if NULL, __do_IRQ()] | 19 | * @handle_irq: highlevel irq-events handler [if NULL, __do_IRQ()] |
20 | * @action: the irq action chain | 20 | * @action: the irq action chain |
21 | * @status: status information | 21 | * @status: status information |
22 | * @core_internal_state__do_not_mess_with_it: core internal status information | ||
22 | * @depth: disable-depth, for nested irq_disable() calls | 23 | * @depth: disable-depth, for nested irq_disable() calls |
23 | * @wake_depth: enable depth, for multiple set_irq_wake() callers | 24 | * @wake_depth: enable depth, for multiple set_irq_wake() callers |
24 | * @irq_count: stats field to detect stalled irqs | 25 | * @irq_count: stats field to detect stalled irqs |
@@ -63,7 +64,7 @@ struct irq_desc { | |||
63 | irq_flow_handler_t handle_irq; | 64 | irq_flow_handler_t handle_irq; |
64 | struct irqaction *action; /* IRQ action list */ | 65 | struct irqaction *action; /* IRQ action list */ |
65 | unsigned int status; /* IRQ status */ | 66 | unsigned int status; /* IRQ status */ |
66 | 67 | unsigned int core_internal_state__do_not_mess_with_it; | |
67 | unsigned int depth; /* nested irq disables */ | 68 | unsigned int depth; /* nested irq disables */ |
68 | unsigned int wake_depth; /* nested wake enables */ | 69 | unsigned int wake_depth; /* nested wake enables */ |
69 | unsigned int irq_count; /* For detecting broken IRQs */ | 70 | unsigned int irq_count; /* For detecting broken IRQs */ |
diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h index b61824cdadc6..ae96e688f4e1 100644 --- a/kernel/irq/internals.h +++ b/kernel/irq/internals.h | |||
@@ -1,5 +1,9 @@ | |||
1 | /* | 1 | /* |
2 | * IRQ subsystem internal functions and variables: | 2 | * IRQ subsystem internal functions and variables: |
3 | * | ||
4 | * Do not ever include this file from anything else than | ||
5 | * kernel/irq/. Do not even think about using any information outside | ||
6 | * of this file for your non core code. | ||
3 | */ | 7 | */ |
4 | #include <linux/irqdesc.h> | 8 | #include <linux/irqdesc.h> |
5 | 9 | ||
@@ -9,6 +13,8 @@ | |||
9 | # define IRQ_BITMAP_BITS NR_IRQS | 13 | # define IRQ_BITMAP_BITS NR_IRQS |
10 | #endif | 14 | #endif |
11 | 15 | ||
16 | #define istate core_internal_state__do_not_mess_with_it | ||
17 | |||
12 | extern int noirqdebug; | 18 | extern int noirqdebug; |
13 | 19 | ||
14 | /* | 20 | /* |