• Paul Burton's avatar
    irqchip/mips-gic: Use for_each_set_bit to iterate over local IRQs · 0f4ed158
    Paul Burton authored
    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 cae750ba
    ("irqchip: mips-gic: Use for_each_set_bit to iterate over IRQs") made
    for shared interrupts.
    Signed-off-by: default avatarPaul 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.comSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    0f4ed158
irq-mips-gic.c 27.9 KB