irqchip/mips-gic: Use for_each_set_bit to iterate over local IRQs
authorPaul Burton <paul.burton@imgtec.com>
Tue, 13 Sep 2016 16:54:27 +0000 (17:54 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 20 Sep 2016 21:21:55 +0000 (23:21 +0200)
commit0f4ed1580ce6c9499eba2a1ba013759700a5ed14
tree13aea5098a53cc59b5fc81aa1cb8bab1c087a0f7
parent464b5847e61085f81bb99ce48eb427a0dc7617dc
irqchip/mips-gic: Use for_each_set_bit to iterate over local IRQs

The MIPS GIC driver has previously iterated over bits set in a bitmap
representing pending local IRQs by calling find_first_bit, clearing that
bit then calling find_first_bit again until all bits are clear. If
multiple interrupts are pending then this is wasteful, as find_first_bit
will have to loop over the whole bitmap from the start. Use the
for_each_set_bit macro which performs exactly what we need here instead.
It will use find_next_bit and thus only scan over the relevant part of
the bitmap, and it makes the intent of the code clearer.

This makes the same change for local interrupts that commit cae750bae4e4
("irqchip: mips-gic: Use for_each_set_bit to iterate over IRQs") made
for shared interrupts.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: linux-mips@linux-mips.org
Cc: Jason Cooper <jason@lakedaemon.net>
Link: http://lkml.kernel.org/r/20160913165427.31686-1-paul.burton@imgtec.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
drivers/irqchip/irq-mips-gic.c