Merge branch kvm-arm64/misc into kvmarm/next
authorOliver Upton <oliver.upton@linux.dev>
Thu, 15 Jun 2023 13:09:21 +0000 (13:09 +0000)
committerOliver Upton <oliver.upton@linux.dev>
Thu, 15 Jun 2023 13:09:43 +0000 (13:09 +0000)
* kvm-arm64/misc:
  : Miscellaneous updates
  :
  :  - Avoid trapping CTR_EL0 on systems with FEAT_EVT, as the register is
  :    commonly read by userspace
  :
  :  - Make use of FEAT_BTI at hyp stage-1, setting the Guard Page bit to 1
  :    for executable mappings
  :
  :  - Use a separate set of pointer authentication keys for the hypervisor
  :    when running in protected mode (i.e. pKVM)
  :
  :  - Plug a few holes in timer initialization where KVM fails to free the
  :    timer IRQ(s)
  KVM: arm64: Use different pointer authentication keys for pKVM
  KVM: arm64: timers: Fix resource leaks in kvm_timer_hyp_init()
  KVM: arm64: Use BTI for nvhe
  KVM: arm64: Relax trapping of CTR_EL0 when FEAT_EVT is available

Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
1  2 
arch/arm64/include/asm/kvm_arm.h
arch/arm64/include/asm/kvm_emulate.h
arch/arm64/kernel/cpufeature.c
arch/arm64/kvm/arm.c
arch/arm64/kvm/hyp/nvhe/hyp-init.S
arch/arm64/kvm/hyp/pgtable.c
arch/arm64/tools/cpucaps

Simple merge
Simple merge
index c01c52a3dd7e397f6123c4f245f74d223fe70dd7,4a2ab3f366de1421990279b14a900b9721f85477..3d93147179a00d68b09dc52845cf7b2fbc4e6e07
@@@ -2656,12 -2641,17 +2656,23 @@@ static const struct arm64_cpu_capabilit
                .cpu_enable = cpu_enable_dit,
                ARM64_CPUID_FIELDS(ID_AA64PFR0_EL1, DIT, IMP)
        },
 +      {
 +              .desc = "VHE for hypervisor only",
 +              .capability = ARM64_KVM_HVHE,
 +              .type = ARM64_CPUCAP_SYSTEM_FEATURE,
 +              .matches = hvhe_possible,
 +      },
+       {
+               .desc = "Enhanced Virtualization Traps",
+               .capability = ARM64_HAS_EVT,
+               .type = ARM64_CPUCAP_SYSTEM_FEATURE,
+               .sys_reg = SYS_ID_AA64MMFR2_EL1,
+               .sign = FTR_UNSIGNED,
+               .field_pos = ID_AA64MMFR2_EL1_EVT_SHIFT,
+               .field_width = 4,
+               .min_field_value = ID_AA64MMFR2_EL1_EVT_IMP,
+               .matches = has_cpuid_feature,
+       },
        {},
  };
  
Simple merge
Simple merge
Simple merge
Simple merge