]> Gentwo Git Trees - linux/.git/commitdiff
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git
authorStephen Rothwell <sfr@canb.auug.org.au>
Tue, 21 Jan 2025 05:09:03 +0000 (16:09 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Tue, 21 Jan 2025 05:09:03 +0000 (16:09 +1100)
1  2 
Documentation/admin-guide/kernel-parameters.txt
arch/arm64/kvm/arm.c
arch/arm64/kvm/hyp/pgtable.c
arch/arm64/kvm/sys_regs.c
arch/arm64/tools/sysreg
tools/testing/selftests/kvm/arm64/aarch32_id_regs.c
tools/testing/selftests/kvm/arm64/set_id_regs.c

Simple merge
Simple merge
index e4749ecbcd79c8e748cb623ab923d96ef04b30ae,526d66f24e34aea2eb62415f14e9cdb3858e6484..f6cd1ea7fb55e509f4faae067eb57ee7e24e8d29
@@@ -1599,12 -1608,10 +1608,13 @@@ static u64 __kvm_read_sanitised_id_reg(
                if (!vcpu_has_ptrauth(vcpu))
                        val &= ~(ARM64_FEATURE_MASK(ID_AA64ISAR2_EL1_APA3) |
                                 ARM64_FEATURE_MASK(ID_AA64ISAR2_EL1_GPA3));
-               if (!cpus_have_final_cap(ARM64_HAS_WFXT))
+               if (!cpus_have_final_cap(ARM64_HAS_WFXT) ||
+                   has_broken_cntvoff())
                        val &= ~ARM64_FEATURE_MASK(ID_AA64ISAR2_EL1_WFxT);
                break;
 +      case SYS_ID_AA64ISAR3_EL1:
 +              val &= ID_AA64ISAR3_EL1_FPRCVT | ID_AA64ISAR3_EL1_FAMINMAX;
 +              break;
        case SYS_ID_AA64MMFR2_EL1:
                val &= ~ID_AA64MMFR2_EL1_CCIDX_MASK;
                break;
Simple merge
index 447d61cae4db119029dd4278ab23ad7afe6c51cb,bd182be48c1b1530e7e2574b3bca0919d58e4228..cef8f7323ceb8842145d6678f5106fe839c7fd8e
@@@ -144,10 -144,10 +144,10 @@@ static bool vcpu_aarch64_only(struct kv
  {
        uint64_t val, el0;
  
 -      vcpu_get_reg(vcpu, KVM_ARM64_SYS_REG(SYS_ID_AA64PFR0_EL1), &val);
 +      val = vcpu_get_reg(vcpu, KVM_ARM64_SYS_REG(SYS_ID_AA64PFR0_EL1));
  
        el0 = FIELD_GET(ARM64_FEATURE_MASK(ID_AA64PFR0_EL1_EL0), val);
-       return el0 == ID_AA64PFR0_EL1_ELx_64BIT_ONLY;
+       return el0 == ID_AA64PFR0_EL1_EL0_IMP;
  }
  
  int main(void)
index 3dd85ce8551c6a1811757f4e950d60ef3b5fc3cc,6b190654e0eae7a2650ac8a0258041607a9f6f1a..217541fe653601a82697134c8d773e901a205cfe
@@@ -664,9 -664,9 +664,9 @@@ int main(void
        vm = vm_create_with_one_vcpu(&vcpu, guest_code);
  
        /* Check for AARCH64 only system */
 -      vcpu_get_reg(vcpu, KVM_ARM64_SYS_REG(SYS_ID_AA64PFR0_EL1), &val);
 +      val = vcpu_get_reg(vcpu, KVM_ARM64_SYS_REG(SYS_ID_AA64PFR0_EL1));
        el0 = FIELD_GET(ARM64_FEATURE_MASK(ID_AA64PFR0_EL1_EL0), val);
-       aarch64_only = (el0 == ID_AA64PFR0_EL1_ELx_64BIT_ONLY);
+       aarch64_only = (el0 == ID_AA64PFR0_EL1_EL0_IMP);
  
        ksft_print_header();