]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/2.6.32.10/kvm-x86-emulator-forbid-modifying-cs-segment-register-by-mov-instruction.patch
5.1-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 2.6.32.10 / kvm-x86-emulator-forbid-modifying-cs-segment-register-by-mov-instruction.patch
CommitLineData
aa62277d
GKH
1From 8b9f44140bc4afd2698413cd9960c3912168ee91 Mon Sep 17 00:00:00 2001
2From: Gleb Natapov <gleb@redhat.com>
3Date: Thu, 18 Feb 2010 12:14:59 +0200
4Subject: KVM: x86 emulator: Forbid modifying CS segment register by mov instruction
5
6From: Gleb Natapov <gleb@redhat.com>
7
8commit 8b9f44140bc4afd2698413cd9960c3912168ee91 upstream.
9
10Inject #UD if guest attempts to do so. This is in accordance to Intel
11SDM.
12
13Signed-off-by: Gleb Natapov <gleb@redhat.com>
14Signed-off-by: Avi Kivity <avi@redhat.com>
15Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16
17---
18 arch/x86/kvm/emulate.c | 6 ++++++
19 1 file changed, 6 insertions(+)
20
21--- a/arch/x86/kvm/emulate.c
22+++ b/arch/x86/kvm/emulate.c
23@@ -1875,6 +1875,12 @@ special_insn:
24 int err;
25
26 sel = c->src.val;
27+
28+ if (c->modrm_reg == VCPU_SREG_CS) {
29+ kvm_queue_exception(ctxt->vcpu, UD_VECTOR);
30+ goto done;
31+ }
32+
33 if (c->modrm_reg == VCPU_SREG_SS)
34 toggle_interruptibility(ctxt, X86_SHADOW_INT_MOV_SS);
35