Commit 31df012d authored by Maximilian Dittgen's avatar Maximilian Dittgen Committed by Oliver Upton
Browse files

KVM: selftests: Assert GICR_TYPER.Processor_Number matches selftest CPU number



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: default avatarMaximilian Dittgen <mdittgen@amazon.de>
Link: https://msgid.link/20251119135744.68552-1-mdittgen@amazon.de


Signed-off-by: default avatarOliver Upton <oupton@kernel.org>
parent cb17d79f
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -298,12 +298,17 @@ static void gicv3_cpu_init(unsigned int cpu)
	volatile void *sgi_base;
	unsigned int i;
	volatile void *redist_base_cpu;
	u64 typer;

	GUEST_ASSERT(cpu < gicv3_data.nr_cpus);

	redist_base_cpu = gicr_base_cpu(cpu);
	sgi_base = sgi_base_from_redist(redist_base_cpu);

	/* Verify assumption that GICR_TYPER.Processor_number == cpu */
	typer = readq_relaxed(redist_base_cpu + GICR_TYPER);
	GUEST_ASSERT_EQ(GICR_TYPER_CPU_NUMBER(typer), cpu);

	gicv3_enable_redist(redist_base_cpu);

	/*