summaryrefslogtreecommitdiffstats
path: root/kernel/irq/internals.h
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2011-02-07 21:48:49 +0100
committerThomas Gleixner <tglx@linutronix.de>2011-02-19 12:58:16 +0100
commit009b4c3b8ad584b3462734127a5bec680d5d6af4 (patch)
treef7cb860dde86ba96afcc085ec7a75ca2a41e49b6 /kernel/irq/internals.h
parent6954b75b488dd740950573f244ddd66fd28620aa (diff)
downloadop-kernel-dev-009b4c3b8ad584b3462734127a5bec680d5d6af4.zip
op-kernel-dev-009b4c3b8ad584b3462734127a5bec680d5d6af4.tar.gz
genirq: Add IRQ_INPROGRESS to core
We need to maintain the flag for now in both fields status and istate. Add a CONFIG_GENERIC_HARDIRQS_NO_COMPAT switch to allow testing w/o the status one. Wrap the access to status IRQ_INPROGRESS in a inline which can be turned of with CONFIG_GENERIC_HARDIRQS_NO_COMPAT along with the define. There is no reason that anything outside of core looks at this. That needs some modifications, but we'll get there. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/irq/internals.h')
-rw-r--r--kernel/irq/internals.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h
index f5d28e1..d1cb1f8 100644
--- a/kernel/irq/internals.h
+++ b/kernel/irq/internals.h
@@ -13,6 +13,7 @@
# define IRQ_BITMAP_BITS NR_IRQS
#endif
+#include "compat.h"
#include "settings.h"
#define istate core_internal_state__do_not_mess_with_it
@@ -40,11 +41,13 @@ enum {
* IRQS_SPURIOUS_DISABLED - was disabled due to spurious interrupt
* detection
* IRQS_POLL_INPROGRESS - polling in progress
+ * IRQS_INPROGRESS - Interrupt in progress
*/
enum {
IRQS_AUTODETECT = 0x00000001,
IRQS_SPURIOUS_DISABLED = 0x00000002,
IRQS_POLL_INPROGRESS = 0x00000008,
+ IRQS_INPROGRESS = 0x00000010,
};
#define irq_data_to_desc(data) container_of(data, struct irq_desc, irq_data)
@@ -128,7 +131,6 @@ static inline void print_irq_desc(unsigned int irq, struct irq_desc *desc)
print_symbol("%s\n", (unsigned long)desc->action->handler);
}
- P(IRQ_INPROGRESS);
P(IRQ_DISABLED);
P(IRQ_PENDING);
P(IRQ_REPLAY);
@@ -143,6 +145,7 @@ static inline void print_irq_desc(unsigned int irq, struct irq_desc *desc)
P(IRQ_NOAUTOEN);
PS(IRQS_AUTODETECT);
+ PS(IRQS_INPROGRESS);
}
#undef P
OpenPOWER on IntegriCloud