[PATCH] KVM: selftests: fix ITS collection target addresses in vgic_lpi_stress

Marc Zyngier maz at kernel.org
Fri Oct 17 10:06:25 PDT 2025


On Fri, 17 Oct 2025 17:19:18 +0100,
Maximilian Dittgen <mdittgen at amazon.de> wrote:
> 
> When mapping guest ITS collections, vgic_lpi_stress iterates over
> integers in the range [0, nr_cpus), passing them as the target_addr
> parameter to its_send_mapc_cmd(). These integers correspond to the
> selftest userspace vCPU IDs that we intend to map each ITS collection
> to.
> 
> However, its_encode_target() within its_send_mapc_cmd() expects a
> vCPU's redistributor address--not the vCPU ID--as the target_addr
> parameter. This is evident from how its_encode_target() encodes the
> target_addr parameter as:
> 
>         its_mask_encode(&cmd->raw_cmd[2], target_addr >> 16, 51, 16)
> 
> This shows that we right-shift the input target_addr parameter by 16
> bits before encoding it. This makes sense when the parameter refers to
> redistributor addresses (e.g., 0x20000, 0x30000) but not vCPU IDs
> (e.g., 0x2, 0x3).

From the KVM ITS emulation code:

	 * We use linear CPU numbers for redistributor addressing,
	 * so GITS_TYPER.PTA is 0.

It is not an address.

	M.

-- 
Without deviation from the norm, progress is not possible.



More information about the linux-arm-kernel mailing list