forked from mirrors/linux
		
	xen: Use IRQF_FORCE_RESUME
Mark the IRQF_NO_SUSPEND interrupts IRQF_FORCE_RESUME and remove the extra walk through the interrupt descriptors. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
This commit is contained in:
		
							parent
							
								
									8aef4857d2
								
							
						
					
					
						commit
						676dc3cf5b
					
				
					 1 changed files with 1 additions and 19 deletions
				
			
		|  | @ -977,7 +977,7 @@ int bind_ipi_to_irqhandler(enum ipi_vector ipi, | |||
| 	if (irq < 0) | ||||
| 		return irq; | ||||
| 
 | ||||
| 	irqflags |= IRQF_NO_SUSPEND; | ||||
| 	irqflags |= IRQF_NO_SUSPEND | IRQF_FORCE_RESUME; | ||||
| 	retval = request_irq(irq, handler, irqflags, devname, dev_id); | ||||
| 	if (retval != 0) { | ||||
| 		unbind_from_irq(irq); | ||||
|  | @ -1433,7 +1433,6 @@ void xen_poll_irq(int irq) | |||
| void xen_irq_resume(void) | ||||
| { | ||||
| 	unsigned int cpu, irq, evtchn; | ||||
| 	struct irq_desc *desc; | ||||
| 
 | ||||
| 	init_evtchn_cpu_bindings(); | ||||
| 
 | ||||
|  | @ -1453,23 +1452,6 @@ void xen_irq_resume(void) | |||
| 		restore_cpu_ipis(cpu); | ||||
| 	} | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Unmask any IRQF_NO_SUSPEND IRQs which are enabled. These | ||||
| 	 * are not handled by the IRQ core. | ||||
| 	 */ | ||||
| 	for_each_irq_desc(irq, desc) { | ||||
| 		if (!desc->action || !(desc->action->flags & IRQF_NO_SUSPEND)) | ||||
| 			continue; | ||||
| 		if (desc->status & IRQ_DISABLED) | ||||
| 			continue; | ||||
| 
 | ||||
| 		evtchn = evtchn_from_irq(irq); | ||||
| 		if (evtchn == -1) | ||||
| 			continue; | ||||
| 
 | ||||
| 		unmask_evtchn(evtchn); | ||||
| 	} | ||||
| 
 | ||||
| 	restore_cpu_pirqs(); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Thomas Gleixner
						Thomas Gleixner