Two bugfixes for arm64. I will have another pull request next week,
but otherwise things are calm. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iQEcBAABAgAGBQJUtonAAAoJEL/70l94x66DeaUH/0ZKXvCUkrfhXMwjgWFkEA/X zF3wm6Et7tn+5UdRTPaO9ko9HmmIZJBlZqVu9+RFFbPBFthzZDdGGXUUjVoKvWgS 2dMejNvf3a+tw9ovXCQwr7Uy1TTqysIQP+0fcOTRJlH4peh1RTEr1JF5IEI3pM0q gWAsQIqijiDUg8rLYQOBBqL/Mz2j09K4YYORS548JESXdQBcBJf3nkAeaeh7RNhw QDt2dH9rCgLFAWdmg0wmKq12CCcHr01aZav11u30OLUEr9OcGpl9ohMqiFYJr1o9 9aV/xk7BDBgxEXZpkpth3ziovAQ8Z6MmczykSZFLNMElhYi0V3DMNYm13SCTLBM= =uUFZ -----END PGP SIGNATURE----- Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull kvm fixes from Paolo Bonzini: "Two bugfixes for arm64. I will have another pull request next week, but otherwise things are calm" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: arm64: KVM: Fix HCR setting for 32bit guests arm64: KVM: Fix TLB invalidation by IPA/VMID
This commit is contained in:
Коммит
48c53db220
|
@ -41,6 +41,8 @@ void kvm_inject_pabt(struct kvm_vcpu *vcpu, unsigned long addr);
|
||||||
static inline void vcpu_reset_hcr(struct kvm_vcpu *vcpu)
|
static inline void vcpu_reset_hcr(struct kvm_vcpu *vcpu)
|
||||||
{
|
{
|
||||||
vcpu->arch.hcr_el2 = HCR_GUEST_FLAGS;
|
vcpu->arch.hcr_el2 = HCR_GUEST_FLAGS;
|
||||||
|
if (test_bit(KVM_ARM_VCPU_EL1_32BIT, vcpu->arch.features))
|
||||||
|
vcpu->arch.hcr_el2 &= ~HCR_RW;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline unsigned long *vcpu_pc(const struct kvm_vcpu *vcpu)
|
static inline unsigned long *vcpu_pc(const struct kvm_vcpu *vcpu)
|
||||||
|
|
|
@ -1014,6 +1014,7 @@ ENTRY(__kvm_tlb_flush_vmid_ipa)
|
||||||
* Instead, we invalidate Stage-2 for this IPA, and the
|
* Instead, we invalidate Stage-2 for this IPA, and the
|
||||||
* whole of Stage-1. Weep...
|
* whole of Stage-1. Weep...
|
||||||
*/
|
*/
|
||||||
|
lsr x1, x1, #12
|
||||||
tlbi ipas2e1is, x1
|
tlbi ipas2e1is, x1
|
||||||
/*
|
/*
|
||||||
* We have to ensure completion of the invalidation at Stage-2,
|
* We have to ensure completion of the invalidation at Stage-2,
|
||||||
|
|
|
@ -90,7 +90,6 @@ int kvm_reset_vcpu(struct kvm_vcpu *vcpu)
|
||||||
if (!cpu_has_32bit_el1())
|
if (!cpu_has_32bit_el1())
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
cpu_reset = &default_regs_reset32;
|
cpu_reset = &default_regs_reset32;
|
||||||
vcpu->arch.hcr_el2 &= ~HCR_RW;
|
|
||||||
} else {
|
} else {
|
||||||
cpu_reset = &default_regs_reset;
|
cpu_reset = &default_regs_reset;
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче