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

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

genirq: Add internal state field to irq_desc



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: default avatarThomas Gleixner <tglx@linutronix.de>
parent 35e857cb
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -19,6 +19,7 @@ struct timer_rand_state;
 * @handle_irq:		highlevel irq-events handler [if NULL, __do_IRQ()]
 * @handle_irq:		highlevel irq-events handler [if NULL, __do_IRQ()]
 * @action:		the irq action chain
 * @action:		the irq action chain
 * @status:		status information
 * @status:		status information
 * @core_internal_state__do_not_mess_with_it: core internal status information
 * @depth:		disable-depth, for nested irq_disable() calls
 * @depth:		disable-depth, for nested irq_disable() calls
 * @wake_depth:		enable depth, for multiple set_irq_wake() callers
 * @wake_depth:		enable depth, for multiple set_irq_wake() callers
 * @irq_count:		stats field to detect stalled irqs
 * @irq_count:		stats field to detect stalled irqs
@@ -63,7 +64,7 @@ struct irq_desc {
	irq_flow_handler_t	handle_irq;
	irq_flow_handler_t	handle_irq;
	struct irqaction	*action;	/* IRQ action list */
	struct irqaction	*action;	/* IRQ action list */
	unsigned int		status;		/* IRQ status */
	unsigned int		status;		/* IRQ status */

	unsigned int		core_internal_state__do_not_mess_with_it;
	unsigned int		depth;		/* nested irq disables */
	unsigned int		depth;		/* nested irq disables */
	unsigned int		wake_depth;	/* nested wake enables */
	unsigned int		wake_depth;	/* nested wake enables */
	unsigned int		irq_count;	/* For detecting broken IRQs */
	unsigned int		irq_count;	/* For detecting broken IRQs */
+6 −0
Original line number Original line Diff line number Diff line
/*
/*
 * IRQ subsystem internal functions and variables:
 * 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>
#include <linux/irqdesc.h>


@@ -9,6 +13,8 @@
# define IRQ_BITMAP_BITS	NR_IRQS
# define IRQ_BITMAP_BITS	NR_IRQS
#endif
#endif


#define istate core_internal_state__do_not_mess_with_it

extern int noirqdebug;
extern int noirqdebug;


/*
/*