The selftests GIC library and tests assume that the GICR_TYPER.Processor_number associated with a given CPU is the same as the CPU's selftest index.
Since this assumption is not guaranteed by specification, add an assert in gicv3_cpu_init() that validates this is true.
Signed-off-by: Maximilian Dittgen mdittgen@amazon.de --- tools/testing/selftests/kvm/lib/arm64/gic_v3.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/tools/testing/selftests/kvm/lib/arm64/gic_v3.c b/tools/testing/selftests/kvm/lib/arm64/gic_v3.c index 66d05506f78b..50158d08117b 100644 --- a/tools/testing/selftests/kvm/lib/arm64/gic_v3.c +++ b/tools/testing/selftests/kvm/lib/arm64/gic_v3.c @@ -304,6 +304,9 @@ static void gicv3_cpu_init(unsigned int cpu) redist_base_cpu = gicr_base_cpu(cpu); sgi_base = sgi_base_from_redist(redist_base_cpu);
+ /* Verify assumption that GICR_TYPER.Processor_number == cpu */ + GUEST_ASSERT(((readq_relaxed(redist_base_cpu + GICR_TYPER) >> 8) & 0xffff) == cpu); + gicv3_enable_redist(redist_base_cpu);
/*