From 74d6ddad477abce0c21f4b54b258612daf5c1ff4 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 10 Feb 2011 22:01:25 +0100 Subject: [PATCH] --- yaml --- r: 234754 b: refs/heads/master c: a6967caf00ebbb2d4acdebcb72a25f2e9ba43fd2 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/include/linux/irqdesc.h | 6 ++++++ trunk/kernel/irq/internals.h | 4 ++++ trunk/kernel/irq/settings.h | 1 + 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index e9e7146dae39..c65ad4dc85a8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e1ef824146131709d7466e37f889f2dab24ca98e +refs/heads/master: a6967caf00ebbb2d4acdebcb72a25f2e9ba43fd2 diff --git a/trunk/include/linux/irqdesc.h b/trunk/include/linux/irqdesc.h index 581d9665fd38..36c95f08023d 100644 --- a/trunk/include/linux/irqdesc.h +++ b/trunk/include/linux/irqdesc.h @@ -64,7 +64,11 @@ struct irq_desc { unsigned int __percpu *kstat_irqs; irq_flow_handler_t handle_irq; struct irqaction *action; /* IRQ action list */ +#ifdef CONFIG_GENERIC_HARDIRQS_NO_COMPAT + unsigned int status_use_accessors; +#else unsigned int status; /* IRQ status */ +#endif unsigned int core_internal_state__do_not_mess_with_it; unsigned int depth; /* nested irq disables */ unsigned int wake_depth; /* nested wake enables */ @@ -164,6 +168,7 @@ static inline int irq_has_action(unsigned int irq) return desc->action != NULL; } +#ifndef CONFIG_GENERIC_HARDIRQS_NO_COMPAT static inline int irq_balancing_disabled(unsigned int irq) { struct irq_desc *desc; @@ -171,6 +176,7 @@ static inline int irq_balancing_disabled(unsigned int irq) desc = irq_to_desc(irq); return desc->status & IRQ_NO_BALANCING_MASK; } +#endif /* caller has locked the irq_desc and both params are valid */ static inline void __set_irq_handler_unlocked(int irq, diff --git a/trunk/kernel/irq/internals.h b/trunk/kernel/irq/internals.h index 5e2366da9f38..fd5777ab2d34 100644 --- a/trunk/kernel/irq/internals.h +++ b/trunk/kernel/irq/internals.h @@ -15,6 +15,10 @@ #define istate core_internal_state__do_not_mess_with_it +#ifdef CONFIG_GENERIC_HARDIRQS_NO_COMPAT +# define status status_use_accessors +#endif + extern int noirqdebug; /* diff --git a/trunk/kernel/irq/settings.h b/trunk/kernel/irq/settings.h index 55ebe1e09da4..0227ad358272 100644 --- a/trunk/kernel/irq/settings.h +++ b/trunk/kernel/irq/settings.h @@ -134,4 +134,5 @@ static inline bool irq_settings_is_nested_thread(struct irq_desc *desc) } /* Nothing should touch desc->status from now on */ +#undef status #define status USE_THE_PROPER_WRAPPERS_YOU_MORON