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

Commit 45cb08f4 authored by Christophe Leroy's avatar Christophe Leroy Committed by Michael Ellerman
Browse files

powerpc: Handle simultaneous interrupts at once



It often happens to have simultaneous interrupts, for instance
when having double Ethernet attachment. With the current
implementation, we suffer the cost of kernel entry/exit for each
interrupt.

This patch introduces a loop in __do_irq() to handle all interrupts
at once before returning.

Signed-off-by: default avatarChristophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 3c29b603
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -481,8 +481,12 @@ void __do_irq(struct pt_regs *regs)
	if (unlikely(!irq))
		__this_cpu_inc(irq_stat.spurious_irqs);
	else
		do {
			generic_handle_irq(irq);

			irq = ppc_md.get_irq();
		} while (irq);

	trace_irq_exit(regs);

	irq_exit();