Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f48bd3b5 authored by Suzuki K. Poulose's avatar Suzuki K. Poulose Committed by Sami Tolvanen
Browse files

UPSTREAM: arm64/kvm: Make use of the system wide safe values



Use the system wide safe value from the new API for safer
decisions

Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Christoffer Dall <christoffer.dall@linaro.org>
Cc: kvmarm@lists.cs.columbia.edu
Signed-off-by: default avatarSuzuki K. Poulose <suzuki.poulose@arm.com>
Acked-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
Tested-by: default avatarDave Martin <Dave.Martin@arm.com>
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>

Bug: 31432001
Change-Id: I5bdf3dcb3fab080f2a633c6798dfc1a8f0bf98d1
(cherry picked from commit 4db8e5ea6b07ae83e4361aee3f967f7126e01fa4)
Signed-off-by: default avatarSami Tolvanen <samitolvanen@google.com>
parent dc01c8a2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ static bool cpu_has_32bit_el1(void)
{
	u64 pfr0;

	pfr0 = read_cpuid(ID_AA64PFR0_EL1);
	pfr0 = read_system_reg(SYS_ID_AA64PFR0_EL1);
	return !!(pfr0 & 0x20);
}

+6 −6
Original line number Diff line number Diff line
@@ -509,13 +509,13 @@ static bool trap_dbgidr(struct kvm_vcpu *vcpu,
	if (p->is_write) {
		return ignore_write(vcpu, p);
	} else {
		u64 dfr = read_cpuid(ID_AA64DFR0_EL1);
		u64 pfr = read_cpuid(ID_AA64PFR0_EL1);
		u32 el3 = !!((pfr >> 12) & 0xf);
		u64 dfr = read_system_reg(SYS_ID_AA64DFR0_EL1);
		u64 pfr = read_system_reg(SYS_ID_AA64PFR0_EL1);
		u32 el3 = !!cpuid_feature_extract_field(pfr, ID_AA64PFR0_EL3_SHIFT);

		*vcpu_reg(vcpu, p->Rt) = ((((dfr >> 20) & 0xf) << 28) |
					  (((dfr >> 12) & 0xf) << 24) |
					  (((dfr >> 28) & 0xf) << 20) |
		*vcpu_reg(vcpu, p->Rt) = ((((dfr >> ID_AA64DFR0_WRPS_SHIFT) & 0xf) << 28) |
					  (((dfr >> ID_AA64DFR0_BRPS_SHIFT) & 0xf) << 24) |
					  (((dfr >> ID_AA64DFR0_CTX_CMPS_SHIFT) & 0xf) << 20) |
					  (6 << 16) | (el3 << 14) | (el3 << 12));
		return true;
	}