irqchip/armada-370-xp: Iterate only valid bits of the per-CPU interrupt cause register

Use MPIC_PER_CPU_IRQS_NR (29) bound instead of BITS_PER_LONG (32) when
iterating the bits of the per-CPU interrupt cause register, since there
are only 29 per-CPU interrupts. The top 3 bits are always zero anyway.

Signed-off-by: Marek Behún <kabel@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
Marek Behún 2024-08-07 18:41:02 +02:00 committed by Thomas Gleixner
parent 2793f68749
commit 4042a965a5

View File

@ -678,7 +678,7 @@ static void mpic_handle_cascade_irq(struct irq_desc *desc)
cause = readl_relaxed(mpic->per_cpu + MPIC_PPI_CAUSE);
cpuid = cpu_logical_map(smp_processor_id());
for_each_set_bit(i, &cause, BITS_PER_LONG) {
for_each_set_bit(i, &cause, MPIC_PER_CPU_IRQS_NR) {
irqsrc = readl_relaxed(mpic->base + MPIC_INT_SOURCE_CTL(i));
/* Check if the interrupt is not masked on current CPU.