aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAvi Kivity <avi@qumranet.com>2007-02-12 00:54:37 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-12 09:48:40 -0800
commitac6c2bc592b90c7f140fc87c49e21bc82376e2aa (patch)
treeeaba4f4f97f9bf17cc0a1abf07637abecca54195
parent988ad74ff6107d9a490ee193e41251e27d37c95f (diff)
downloadkernel_samsung_aries-ac6c2bc592b90c7f140fc87c49e21bc82376e2aa.zip
kernel_samsung_aries-ac6c2bc592b90c7f140fc87c49e21bc82376e2aa.tar.gz
kernel_samsung_aries-ac6c2bc592b90c7f140fc87c49e21bc82376e2aa.tar.bz2
[PATCH] kvm: Fix mmu going crazy of guest sets cr0.wp == 0
The kvm mmu relies on cr0.wp being set even if the guest does not set it. The vmx code correctly forces cr0.wp at all times, the svm code does not, so it can't boot solaris without this patch. Signed-off-by: Avi Kivity <avi@qumranet.com> Cc: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/kvm/svm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/kvm/svm.c b/drivers/kvm/svm.c
index 85f61dd..6b4de4f 100644
--- a/drivers/kvm/svm.c
+++ b/drivers/kvm/svm.c
@@ -723,7 +723,7 @@ static void svm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0)
}
#endif
vcpu->svm->cr0 = cr0;
- vcpu->svm->vmcb->save.cr0 = cr0 | CR0_PG_MASK;
+ vcpu->svm->vmcb->save.cr0 = cr0 | CR0_PG_MASK | CR0_WP_MASK;
vcpu->cr0 = cr0;
}