[PATCH v2 RESEND 2/3] irqchip/gic-v5: Fix loop in gicv5_its_create_itt_two_level() cleanup path

Lorenzo Pieralisi lpieralisi at kernel.org
Mon Sep 8 01:27:44 PDT 2025


From: Dan Carpenter <dan.carpenter at linaro.org>

The "i" variable in gicv5_its_create_itt_two_level() needs to be signed
otherwise it would cause a forever loop in the function cleanup path.

[lpieralisi: reworded commit log]

Fixes: 57d72196dfc8 ("irqchip/gic-v5: Add GICv5 ITS support")
Signed-off-by: Dan Carpenter <dan.carpenter at linaro.org>
Signed-off-by: Lorenzo Pieralisi <lpieralisi at kernel.org>
Reviewed-by: Zenghui Yu <yuzenghui at huawei.com>
Cc: Thomas Gleixner <tglx at linutronix.de>
Cc: Marc Zyngier <maz at kernel.org>
---
 drivers/irqchip/irq-gic-v5-its.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/irqchip/irq-gic-v5-its.c b/drivers/irqchip/irq-gic-v5-its.c
index 9290ac741949..4701ef62b8b2 100644
--- a/drivers/irqchip/irq-gic-v5-its.c
+++ b/drivers/irqchip/irq-gic-v5-its.c
@@ -191,9 +191,9 @@ static int gicv5_its_create_itt_two_level(struct gicv5_its_chip_data *its,
 					  unsigned int num_events)
 {
 	unsigned int l1_bits, l2_bits, span, events_per_l2_table;
-	unsigned int i, complete_tables, final_span, num_ents;
+	unsigned int complete_tables, final_span, num_ents;
 	__le64 *itt_l1, *itt_l2, **l2ptrs;
-	int ret;
+	int i, ret;
 	u64 val;
 
 	ret = gicv5_its_l2sz_to_l2_bits(itt_l2sz);
-- 
2.48.0




More information about the linux-arm-kernel mailing list