diff options
Diffstat (limited to 'recipes/linux/linux-omap-2.6.37/linus/0026-KVM-MMU-Fix-incorrect-direct-gfn-for-unpaged-mode-sh.patch')
-rw-r--r-- | recipes/linux/linux-omap-2.6.37/linus/0026-KVM-MMU-Fix-incorrect-direct-gfn-for-unpaged-mode-sh.patch | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/recipes/linux/linux-omap-2.6.37/linus/0026-KVM-MMU-Fix-incorrect-direct-gfn-for-unpaged-mode-sh.patch b/recipes/linux/linux-omap-2.6.37/linus/0026-KVM-MMU-Fix-incorrect-direct-gfn-for-unpaged-mode-sh.patch new file mode 100644 index 0000000000..dd2c9b32be --- /dev/null +++ b/recipes/linux/linux-omap-2.6.37/linus/0026-KVM-MMU-Fix-incorrect-direct-gfn-for-unpaged-mode-sh.patch @@ -0,0 +1,35 @@ +From 649497d1a3676020802ebba04a3d9bb31253adb5 Mon Sep 17 00:00:00 2001 +From: Avi Kivity <avi@redhat.com> +Date: Tue, 28 Dec 2010 12:09:07 +0200 +Subject: [PATCH 26/66] KVM: MMU: Fix incorrect direct gfn for unpaged mode shadow + +We use the physical address instead of the base gfn for the four +PAE page directories we use in unpaged mode. When the guest accesses +an address above 1GB that is backed by a large host page, a BUG_ON() +in kvm_mmu_set_gfn() triggers. + +Resolves: https://bugzilla.kernel.org/show_bug.cgi?id=21962 +Reported-and-tested-by: Nicolas Prochazka <prochazka.nicolas@gmail.com> +KVM-Stable-Tag. +Signed-off-by: Avi Kivity <avi@redhat.com> +--- + arch/x86/kvm/mmu.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c +index fb8b376..fbb04ae 100644 +--- a/arch/x86/kvm/mmu.c ++++ b/arch/x86/kvm/mmu.c +@@ -2394,7 +2394,8 @@ static int mmu_alloc_direct_roots(struct kvm_vcpu *vcpu) + ASSERT(!VALID_PAGE(root)); + spin_lock(&vcpu->kvm->mmu_lock); + kvm_mmu_free_some_pages(vcpu); +- sp = kvm_mmu_get_page(vcpu, i << 30, i << 30, ++ sp = kvm_mmu_get_page(vcpu, i << (30 - PAGE_SHIFT), ++ i << 30, + PT32_ROOT_LEVEL, 1, ACC_ALL, + NULL); + root = __pa(sp->spt); +-- +1.6.6.1 + |