Commit f4626281 authored by Marc Zyngier's avatar Marc Zyngier
Browse files

KVM: arm64: Don't advertises GICv3 in ID_PFR1_EL1 if AArch32 isn't supported



Although the AArch32 ID regs are architecturally UNKNOWN when AArch32
isn't supported at any EL, KVM makes a point in making them RAZ.

Therefore, advertising GICv3 in ID_PFR1_EL1 must be gated on AArch32
being supported at least at EL0.

Reviewed-by: default avatarSascha Bischoff <sascha.bischoff@arm.com>
Fixes: a258a383 ("KVM: arm64: gic-v5: Sanitize ID_AA64PFR2_EL1.GCIE")
Reported-by: default avatarMark Brown <broonie@kernel.org>
Tested-by: default avatarMark Brown <broonie@kernel.org>
Link: https://patch.msgid.link/20260401103611.357092-16-maz@kernel.org


Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
parent be46a408
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -700,6 +700,7 @@ void kvm_vgic_finalize_idregs(struct kvm *kvm)
		break;
	case KVM_DEV_TYPE_ARM_VGIC_V3:
		aa64pfr0 |= SYS_FIELD_PREP_ENUM(ID_AA64PFR0_EL1, GIC, IMP);
		if (kvm_supports_32bit_el0())
			pfr1 |= SYS_FIELD_PREP_ENUM(ID_PFR1_EL1, GIC, GICv3);
		break;
	case KVM_DEV_TYPE_ARM_VGIC_V5: