From: Qais Yousef Date: Mon, 19 Jan 2015 11:51:29 +0000 (+0000) Subject: irqchip: mips-gic: Handle pending interrupts once in __gic_irq_dispatch() X-Git-Tag: omap-for-v4.1/prcm-dts-mfd-syscon-fix~77^2~2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d7eb4f2ecccd71f701bc8873bcf07c2d3b0375f6;p=pandora-kernel.git irqchip: mips-gic: Handle pending interrupts once in __gic_irq_dispatch() When an interrupt occurs __gic_irq_dispatch() continuously reads local and shared pending registers until all is serviced before returning. The problem with that is that it could introduce a long delay before returning if a piece of hardware keeps triggering while in one of these loops. To ensure fairness and priority doesn't get skewed a lot, read local and shared pending registers once to service each pending IRQ once. If another interupt triggers while servicing the current ones, then we shall re-enter the handler after we return. Signed-off-by: Qais Yousef Cc: Jason Cooper Cc: Andrew Bresticker Cc: Link: http://lkml.kernel.org/r/1421668289-828-1-git-send-email-qais.yousef@imgtec.com Signed-off-by: Thomas Gleixner --- Reading git-diff-tree failed