Commit d782ac5b authored by Ryan Roberts's avatar Ryan Roberts Committed by Marc Zyngier
Browse files

KVM: arm64: Allow guests with >48-bit IPA size on FEAT_LPA2 systems



With all the page-table infrastructure in place, we can finally increase
the maximum permisable IPA size to 52-bits on 4KB and 16KB page systems
that have FEAT_LPA2.

Reviewed-by: default avatarOliver Upton <oliver.upton@linux.dev>
Signed-off-by: default avatarRyan Roberts <ryan.roberts@arm.com>
Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20231127111737.1897081-11-ryan.roberts@arm.com
parent 0abc1b11
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -280,12 +280,11 @@ int __init kvm_set_ipa_limit(void)
	parange = cpuid_feature_extract_unsigned_field(mmfr0,
				ID_AA64MMFR0_EL1_PARANGE_SHIFT);
	/*
	 * IPA size beyond 48 bits could not be supported
	 * on either 4K or 16K page size. Hence let's cap
	 * it to 48 bits, in case it's reported as larger
	 * on the system.
	 * IPA size beyond 48 bits for 4K and 16K page size is only supported
	 * when LPA2 is available. So if we have LPA2, enable it, else cap to 48
	 * bits, in case it's reported as larger on the system.
	 */
	if (PAGE_SIZE != SZ_64K)
	if (!kvm_lpa2_is_enabled() && PAGE_SIZE != SZ_64K)
		parange = min(parange, (unsigned int)ID_AA64MMFR0_EL1_PARANGE_48);

	/*