mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
irqchip/gic-v5: Check get_logical_index() return value in MADT IAFFID parsing
In gic_acpi_parse_iaffid() a given MADT GICC entry might not correspond
to a logical cpu recognized by the kernel, resulting in the cpu variable
initialization to an error value.
Currently, the get_logical_index() return value is not checked for failure,
which might result in out-of-bounds memory corruption while trying to
index a per_cpu variable array.
Add a check to evaluate get_logical_index() return value.
Fixes: 35866efa52 ("irqchip/gic-v5: Add ACPI IRS probing")
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://sashiko.dev/#/message/20260810104747.E5CE71F000E9%40smtp.kernel.org
Link: https://patch.msgid.link/20260812-gicv5-7-2-fixes-v1-1-3743e82c69a4@kernel.org
This commit is contained in:
parent
ac6db0e0be
commit
328affc639
|
|
@ -874,6 +874,8 @@ static int __init gic_acpi_parse_iaffid(union acpi_subtable_headers *header,
|
|||
return 0;
|
||||
|
||||
cpu = get_logical_index(gicc->arm_mpidr);
|
||||
if (cpu < 0)
|
||||
return 0;
|
||||
|
||||
if (gicc->iaffid & ~GENMASK(current_iaffid_bits - 1, 0)) {
|
||||
pr_warn("CPU %d iaffid 0x%x exceeds IRS iaffid bits\n", cpu, gicc->iaffid);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user