diff options
author | Aurelien Jarno <aurelien@aurel32.net> | 2007-07-25 10:19:54 +0200 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2007-07-25 14:31:27 +0300 |
commit | d37c85571904a622cbabc7a2e04b8c919de75ac0 (patch) | |
tree | 460694be89be0bfa0049a23c842e0cb3edcf6eca /drivers/kvm | |
parent | 4c981b43d7ec18818754bf85b829865abd0ce340 (diff) |
KVM: disable writeback for 0x0f 0x01 instructions.
0x0f 0x01 instructions (ie lgdt, lidt, smsw, lmsw and invlpg) does
not use writeback. This patch set no_wb=1 when emulating those
instructions.
This fixes a regression booting the FreeBSD kernel on AMD.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'drivers/kvm')
-rw-r--r-- | drivers/kvm/x86_emulate.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/kvm/x86_emulate.c b/drivers/kvm/x86_emulate.c index 1b800fc00342..1f979cb0df31 100644 --- a/drivers/kvm/x86_emulate.c +++ b/drivers/kvm/x86_emulate.c @@ -1178,6 +1178,8 @@ pop_instruction: twobyte_insn: switch (b) { case 0x01: /* lgdt, lidt, lmsw */ + /* Disable writeback. */ + no_wb = 1; switch (modrm_reg) { u16 size; unsigned long address; |