xen/arm: gic: Make sure the number of interrupt lines is valid before using it
authorJulien Grall <julien.grall@arm.com>
Fri, 30 Nov 2018 17:15:33 +0000 (17:15 +0000)
committerStefano Stabellini <sstabellini@kernel.org>
Tue, 29 Oct 2019 18:39:20 +0000 (11:39 -0700)
commit6d367347bc175caedf66c8e68f66a23be8f298c2
tree7bd66e754dcdd6bc0865ee3da9c3daa5f8f0d2ac
parente2e653f69281e2050acbff3a57cc06cebb7b1078
xen/arm: gic: Make sure the number of interrupt lines is valid before using it

GICv2 and GICv3 supports up to 1020 interrupts. However, the value computed
from GICD_TYPER.ITLinesNumber can be up to 1024. On GICv3, we will end up to
write in reserved registers that are right after the IROUTERs one as the
value is not capped early enough.

Cap the number of interrupts as soon as we compute it so we know we can
safely using it afterwards.

Signed-off-by: Julien Grall <julien.grall@arm.com>
Reported-by: Jan-Peter Larsson <Jan-Peter.Larsson@arm.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Release-Acked-by: Juergen Gross <jgross@suse.com>
(cherry picked from commit 30f5047b2c4e577436b505ba7627f34c3be02014)
xen/arch/arm/gic-v2.c
xen/arch/arm/gic-v3.c