Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a6967caf authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

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: default avatarThomas Gleixner <tglx@linutronix.de>
parent e1ef8241
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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,
+4 −0
Original line number Diff line number Diff line
@@ -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;

/*
+1 −0
Original line number Diff line number Diff line
@@ -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