genirq: Add internal state field to irq_desc
authorThomas Gleixner <tglx@linutronix.de>
Mon, 7 Feb 2011 19:19:55 +0000 (20:19 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Sat, 19 Feb 2011 11:58:14 +0000 (12:58 +0100)
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>
include/linux/irqdesc.h
kernel/irq/internals.h

index 64794dec93b6536d4b60294b3c298ed4af380b57..782bf9851a9f5c269ad826fa19753fa68fecb7f2 100644 (file)
@@ -19,6 +19,7 @@ struct timer_rand_state;
  * @handle_irq:                highlevel irq-events handler [if NULL, __do_IRQ()]
  * @action:            the irq action chain
  * @status:            status information
+ * @core_internal_state__do_not_mess_with_it: core internal status information
  * @depth:             disable-depth, for nested irq_disable() calls
  * @wake_depth:                enable depth, for multiple set_irq_wake() callers
  * @irq_count:         stats field to detect stalled irqs
@@ -63,7 +64,7 @@ struct irq_desc {
        irq_flow_handler_t      handle_irq;
        struct irqaction        *action;        /* IRQ action list */
        unsigned int            status;         /* IRQ status */
-
+       unsigned int            core_internal_state__do_not_mess_with_it;
        unsigned int            depth;          /* nested irq disables */
        unsigned int            wake_depth;     /* nested wake enables */
        unsigned int            irq_count;      /* For detecting broken IRQs */
index b61824cdadc66720c2f2599aa97eeffdf261c7c3..ae96e688f4e16e8fd8eb60e4bcc29eef028607ee 100644 (file)
@@ -1,5 +1,9 @@
 /*
  * IRQ subsystem internal functions and variables:
+ *
+ * Do not ever include this file from anything else than
+ * kernel/irq/. Do not even think about using any information outside
+ * of this file for your non core code.
  */
 #include <linux/irqdesc.h>
 
@@ -9,6 +13,8 @@
 # define IRQ_BITMAP_BITS       NR_IRQS
 #endif
 
+#define istate core_internal_state__do_not_mess_with_it
+
 extern int noirqdebug;
 
 /*
This page took 0.029606 seconds and 5 git commands to generate.