mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 13:11:40 +00:00
genirq: Remove desc->status when GENERIC_HARDIRQS_NO_COMPAT=y
If everything uses the right accessors, then enabling GENERIC_HARDIRQS_NO_COMPAT should just work. If not it will tell you. Don't be lazy and use the trick which I use in the core code! git grep status_use_accessors will unearth it in a split second. Offenders are tracked down and not slapped with stinking trouts. This time we use frozen shark for a better educational value. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
e1ef824146
commit
a6967caf00
@ -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,
|
||||
|
@ -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;
|
||||
|
||||
/*
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user