Commit 1a9de2f6 authored by Aleksandr Mishin's avatar Aleksandr Mishin Committed by Catalin Marinas
Browse files

acpi/arm64: Adjust error handling procedure in gtdt_parse_timer_block()



In case of error in gtdt_parse_timer_block() invalid 'gtdt_frame'
will be used in 'do {} while (i-- >= 0 && gtdt_frame--);' statement block
because do{} block will be executed even if 'i == 0'.

Adjust error handling procedure by replacing 'i-- >= 0' with 'i-- > 0'.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: a712c3ed ("acpi/arm64: Add memory-mapped timer support in GTDT driver")
Signed-off-by: default avatarAleksandr Mishin <amishin@t-argos.ru>
Acked-by: default avatarHanjun Guo <guohanjun@huawei.com>
Acked-by: default avatarSudeep Holla <sudeep.holla@arm.com>
Acked-by: default avatarAleksandr Mishin <amishin@t-argos.ru>
Link: https://lore.kernel.org/r/20240827101239.22020-1-amishin@t-argos.ru


Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent 340fd66c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -294,7 +294,7 @@ static int __init gtdt_parse_timer_block(struct acpi_gtdt_timer_block *block,
		if (frame->virt_irq > 0)
			acpi_unregister_gsi(gtdt_frame->virtual_timer_interrupt);
		frame->virt_irq = 0;
	} while (i-- >= 0 && gtdt_frame--);
	} while (i-- > 0 && gtdt_frame--);

	return -EINVAL;
}