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

Commit 676dc3cf authored by Thomas Gleixner's avatar Thomas Gleixner Committed by Konrad Rzeszutek Wilk
Browse files

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: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
parent 8aef4857
Loading
Loading
Loading
Loading
+1 −19
Original line number Diff line number Diff line
@@ -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();
}