mirror of https://gitee.com/openkylin/linux.git
KVM/ARM Fixes for v4.8, round 2
Fixes an idmap issue on 32-bit KVM on ARM, and fixes a memory unmapping issue that we've had forever. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJX0pHmAAoJEEtpOizt6ddy1LcIAI0bolSI1veypr1jCE3rTqPU 3y0jnsOUDVYFWAG6g+fy8navkzwRxp9bgR4B9JZ35P/A0Te2vynajikf24ts/n2F oKQ4p1gq8AninXLYCJNcnlJ2yaB8beHzdPzp++IyayI1gc9CGfSlHdltg5CID/lT f5hMgrPv1n5tgD2wWZkqLTr84DQfEMopWg7ICgH3BgPwyS4ogs1/JJF4M+MN6nUP lcAvukxnH62246dXsNOpjtubUmruK3ie16mqxCnRiT8uYnfS4JVsxLgHUqR6U/es /0aASc0oRhzEafGFiVC6TtrZvkSirbBw363WnswFyfafXrF+4P6Vhd9KnqZ11MI= =boFc -----END PGP SIGNATURE----- Merge tag 'kvm-arm-fixes-for-v4.8-round2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-master KVM/ARM Fixes for v4.8, round 2 Fixes an idmap issue on 32-bit KVM on ARM, and fixes a memory unmapping issue that we've had forever.
This commit is contained in:
commit
27bd44e06c
|
@ -158,8 +158,6 @@ void kvm_arch_destroy_vm(struct kvm *kvm)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
kvm_free_stage2_pgd(kvm);
|
|
||||||
|
|
||||||
for (i = 0; i < KVM_MAX_VCPUS; ++i) {
|
for (i = 0; i < KVM_MAX_VCPUS; ++i) {
|
||||||
if (kvm->vcpus[i]) {
|
if (kvm->vcpus[i]) {
|
||||||
kvm_arch_vcpu_free(kvm->vcpus[i]);
|
kvm_arch_vcpu_free(kvm->vcpus[i]);
|
||||||
|
|
|
@ -1714,7 +1714,8 @@ int kvm_mmu_init(void)
|
||||||
kern_hyp_va(PAGE_OFFSET), kern_hyp_va(~0UL));
|
kern_hyp_va(PAGE_OFFSET), kern_hyp_va(~0UL));
|
||||||
|
|
||||||
if (hyp_idmap_start >= kern_hyp_va(PAGE_OFFSET) &&
|
if (hyp_idmap_start >= kern_hyp_va(PAGE_OFFSET) &&
|
||||||
hyp_idmap_start < kern_hyp_va(~0UL)) {
|
hyp_idmap_start < kern_hyp_va(~0UL) &&
|
||||||
|
hyp_idmap_start != (unsigned long)__hyp_idmap_text_start) {
|
||||||
/*
|
/*
|
||||||
* The idmap page is intersecting with the VA space,
|
* The idmap page is intersecting with the VA space,
|
||||||
* it is not safe to continue further.
|
* it is not safe to continue further.
|
||||||
|
@ -1893,6 +1894,7 @@ void kvm_arch_memslots_updated(struct kvm *kvm, struct kvm_memslots *slots)
|
||||||
|
|
||||||
void kvm_arch_flush_shadow_all(struct kvm *kvm)
|
void kvm_arch_flush_shadow_all(struct kvm *kvm)
|
||||||
{
|
{
|
||||||
|
kvm_free_stage2_pgd(kvm);
|
||||||
}
|
}
|
||||||
|
|
||||||
void kvm_arch_flush_shadow_memslot(struct kvm *kvm,
|
void kvm_arch_flush_shadow_memslot(struct kvm *kvm,
|
||||||
|
|
Loading…
Reference in New Issue