mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	genirq: Remove IRQ_MOVE_PCNTXT and related code
Now that x86 is converted over to use the IRQCHIP_MOVE_DEFERRED flags, remove IRQ*_MOVE_PCNTXT and related code. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20241210103335.626707225@linutronix.de
This commit is contained in:
		
							parent
							
								
									7d04319a05
								
							
						
					
					
						commit
						f94a18249b
					
				
					 6 changed files with 2 additions and 34 deletions
				
			
		| 
						 | 
				
			
			@ -173,7 +173,6 @@ config X86
 | 
			
		|||
	select GENERIC_IRQ_RESERVATION_MODE
 | 
			
		||||
	select GENERIC_IRQ_SHOW
 | 
			
		||||
	select GENERIC_PENDING_IRQ		if SMP
 | 
			
		||||
	select GENERIC_PENDING_IRQ_CHIPFLAGS	if SMP
 | 
			
		||||
	select GENERIC_PTDUMP
 | 
			
		||||
	select GENERIC_SMP_IDLE_THREAD
 | 
			
		||||
	select GENERIC_TIME_VSYSCALL
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -64,7 +64,6 @@ enum irqchip_irq_state;
 | 
			
		|||
 * IRQ_NOAUTOEN			- Interrupt is not automatically enabled in
 | 
			
		||||
 *				  request/setup_irq()
 | 
			
		||||
 * IRQ_NO_BALANCING		- Interrupt cannot be balanced (affinity set)
 | 
			
		||||
 * IRQ_MOVE_PCNTXT		- Interrupt can be migrated from process context
 | 
			
		||||
 * IRQ_NESTED_THREAD		- Interrupt nests into another thread
 | 
			
		||||
 * IRQ_PER_CPU_DEVID		- Dev_id is a per-cpu variable
 | 
			
		||||
 * IRQ_IS_POLLED		- Always polled by another interrupt. Exclude
 | 
			
		||||
| 
						 | 
				
			
			@ -93,7 +92,6 @@ enum {
 | 
			
		|||
	IRQ_NOREQUEST		= (1 << 11),
 | 
			
		||||
	IRQ_NOAUTOEN		= (1 << 12),
 | 
			
		||||
	IRQ_NO_BALANCING	= (1 << 13),
 | 
			
		||||
	IRQ_MOVE_PCNTXT		= (1 << 14),
 | 
			
		||||
	IRQ_NESTED_THREAD	= (1 << 15),
 | 
			
		||||
	IRQ_NOTHREAD		= (1 << 16),
 | 
			
		||||
	IRQ_PER_CPU_DEVID	= (1 << 17),
 | 
			
		||||
| 
						 | 
				
			
			@ -105,7 +103,7 @@ enum {
 | 
			
		|||
 | 
			
		||||
#define IRQF_MODIFY_MASK	\
 | 
			
		||||
	(IRQ_TYPE_SENSE_MASK | IRQ_NOPROBE | IRQ_NOREQUEST | \
 | 
			
		||||
	 IRQ_NOAUTOEN | IRQ_MOVE_PCNTXT | IRQ_LEVEL | IRQ_NO_BALANCING | \
 | 
			
		||||
	 IRQ_NOAUTOEN | IRQ_LEVEL | IRQ_NO_BALANCING | \
 | 
			
		||||
	 IRQ_PER_CPU | IRQ_NESTED_THREAD | IRQ_NOTHREAD | IRQ_PER_CPU_DEVID | \
 | 
			
		||||
	 IRQ_IS_POLLED | IRQ_DISABLE_UNLAZY | IRQ_HIDDEN)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -201,8 +199,6 @@ struct irq_data {
 | 
			
		|||
 * IRQD_LEVEL			- Interrupt is level triggered
 | 
			
		||||
 * IRQD_WAKEUP_STATE		- Interrupt is configured for wakeup
 | 
			
		||||
 *				  from suspend
 | 
			
		||||
 * IRQD_MOVE_PCNTXT		- Interrupt can be moved in process
 | 
			
		||||
 *				  context
 | 
			
		||||
 * IRQD_IRQ_DISABLED		- Disabled state of the interrupt
 | 
			
		||||
 * IRQD_IRQ_MASKED		- Masked state of the interrupt
 | 
			
		||||
 * IRQD_IRQ_INPROGRESS		- In progress state of the interrupt
 | 
			
		||||
| 
						 | 
				
			
			@ -233,7 +229,6 @@ enum {
 | 
			
		|||
	IRQD_AFFINITY_SET		= BIT(12),
 | 
			
		||||
	IRQD_LEVEL			= BIT(13),
 | 
			
		||||
	IRQD_WAKEUP_STATE		= BIT(14),
 | 
			
		||||
	IRQD_MOVE_PCNTXT		= BIT(15),
 | 
			
		||||
	IRQD_IRQ_DISABLED		= BIT(16),
 | 
			
		||||
	IRQD_IRQ_MASKED			= BIT(17),
 | 
			
		||||
	IRQD_IRQ_INPROGRESS		= BIT(18),
 | 
			
		||||
| 
						 | 
				
			
			@ -338,11 +333,6 @@ static inline bool irqd_is_wakeup_set(struct irq_data *d)
 | 
			
		|||
	return __irqd_to_state(d) & IRQD_WAKEUP_STATE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline bool irqd_can_move_in_process_context(struct irq_data *d)
 | 
			
		||||
{
 | 
			
		||||
	return __irqd_to_state(d) & IRQD_MOVE_PCNTXT;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline bool irqd_irq_disabled(struct irq_data *d)
 | 
			
		||||
{
 | 
			
		||||
	return __irqd_to_state(d) & IRQD_IRQ_DISABLED;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -47,13 +47,6 @@ int irq_set_chip(unsigned int irq, const struct irq_chip *chip)
 | 
			
		|||
		return -EINVAL;
 | 
			
		||||
 | 
			
		||||
	desc->irq_data.chip = (struct irq_chip *)(chip ?: &no_irq_chip);
 | 
			
		||||
 | 
			
		||||
	if (IS_ENABLED(CONFIG_GENERIC_PENDING_IRQ_CHIPFLAGS) && chip) {
 | 
			
		||||
		if (chip->flags & IRQCHIP_MOVE_DEFERRED)
 | 
			
		||||
			irqd_clear(&desc->irq_data, IRQD_MOVE_PCNTXT);
 | 
			
		||||
		else
 | 
			
		||||
			irqd_set(&desc->irq_data, IRQD_MOVE_PCNTXT);
 | 
			
		||||
	}
 | 
			
		||||
	irq_put_desc_unlock(desc, flags);
 | 
			
		||||
	/*
 | 
			
		||||
	 * For !CONFIG_SPARSE_IRQ make the irq show up in
 | 
			
		||||
| 
						 | 
				
			
			@ -1129,13 +1122,6 @@ void irq_modify_status(unsigned int irq, unsigned long clr, unsigned long set)
 | 
			
		|||
	if (irq_settings_is_level(desc))
 | 
			
		||||
		irqd_set(&desc->irq_data, IRQD_LEVEL);
 | 
			
		||||
 | 
			
		||||
	/* Keep this around until x86 is converted over */
 | 
			
		||||
	if (!IS_ENABLED(CONFIG_GENERIC_PENDING_IRQ_CHIPFLAGS)) {
 | 
			
		||||
		irqd_clear(&desc->irq_data, IRQD_MOVE_PCNTXT);
 | 
			
		||||
		if (irq_settings_can_move_pcntxt(desc))
 | 
			
		||||
			irqd_set(&desc->irq_data, IRQD_MOVE_PCNTXT);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	tmp = irq_settings_get_trigger_mask(desc);
 | 
			
		||||
	if (tmp != IRQ_TYPE_NONE)
 | 
			
		||||
		trigger = tmp;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -109,7 +109,6 @@ static const struct irq_bit_descr irqdata_states[] = {
 | 
			
		|||
	BIT_MASK_DESCR(IRQD_NO_BALANCING),
 | 
			
		||||
 | 
			
		||||
	BIT_MASK_DESCR(IRQD_SINGLE_TARGET),
 | 
			
		||||
	BIT_MASK_DESCR(IRQD_MOVE_PCNTXT),
 | 
			
		||||
	BIT_MASK_DESCR(IRQD_AFFINITY_SET),
 | 
			
		||||
	BIT_MASK_DESCR(IRQD_SETAFFINITY_PENDING),
 | 
			
		||||
	BIT_MASK_DESCR(IRQD_AFFINITY_MANAGED),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -421,7 +421,7 @@ irq_init_generic_chip(struct irq_chip_generic *gc, const char *name,
 | 
			
		|||
#ifdef CONFIG_GENERIC_PENDING_IRQ
 | 
			
		||||
static inline bool irq_can_move_pcntxt(struct irq_data *data)
 | 
			
		||||
{
 | 
			
		||||
	return irqd_can_move_in_process_context(data);
 | 
			
		||||
	return !(data->chip->flags & IRQCHIP_MOVE_DEFERRED);
 | 
			
		||||
}
 | 
			
		||||
static inline bool irq_move_pending(struct irq_data *data)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,7 +11,6 @@ enum {
 | 
			
		|||
	_IRQ_NOREQUEST		= IRQ_NOREQUEST,
 | 
			
		||||
	_IRQ_NOTHREAD		= IRQ_NOTHREAD,
 | 
			
		||||
	_IRQ_NOAUTOEN		= IRQ_NOAUTOEN,
 | 
			
		||||
	_IRQ_MOVE_PCNTXT	= IRQ_MOVE_PCNTXT,
 | 
			
		||||
	_IRQ_NO_BALANCING	= IRQ_NO_BALANCING,
 | 
			
		||||
	_IRQ_NESTED_THREAD	= IRQ_NESTED_THREAD,
 | 
			
		||||
	_IRQ_PER_CPU_DEVID	= IRQ_PER_CPU_DEVID,
 | 
			
		||||
| 
						 | 
				
			
			@ -142,11 +141,6 @@ static inline void irq_settings_set_noprobe(struct irq_desc *desc)
 | 
			
		|||
	desc->status_use_accessors |= _IRQ_NOPROBE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline bool irq_settings_can_move_pcntxt(struct irq_desc *desc)
 | 
			
		||||
{
 | 
			
		||||
	return desc->status_use_accessors & _IRQ_MOVE_PCNTXT;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline bool irq_settings_can_autoenable(struct irq_desc *desc)
 | 
			
		||||
{
 | 
			
		||||
	return !(desc->status_use_accessors & _IRQ_NOAUTOEN);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue