From: Jack Lange Date: Sat, 14 Feb 2009 00:18:00 +0000 (-0600) Subject: fixed Syscall enable flag in efer X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=commitdiff_plain;h=9d020f5ec16f13012fb1cc72c0871c3f21d4895e fixed Syscall enable flag in efer --- diff --git a/palacios/src/palacios/vmm_ctrl_regs.c b/palacios/src/palacios/vmm_ctrl_regs.c index d897fa0..c0ec45c 100644 --- a/palacios/src/palacios/vmm_ctrl_regs.c +++ b/palacios/src/palacios/vmm_ctrl_regs.c @@ -499,10 +499,12 @@ int v3_handle_efer_read(uint_t msr, struct v3_msr * dst, void * priv_data) { } + +// TODO: this is a disaster we need to clean this up... int v3_handle_efer_write(uint_t msr, struct v3_msr src, void * priv_data) { struct guest_info * info = (struct guest_info *)(priv_data); //struct efer_64 * new_efer = (struct efer_64 *)&(src.value); - // struct efer_64 * shadow_efer = (struct efer_64 *)&(info->ctrl_regs.efer); + struct efer_64 * shadow_efer = (struct efer_64 *)&(info->ctrl_regs.efer); struct v3_msr * guest_efer = &(info->guest_efer); PrintDebug("EFER Write\n"); @@ -512,7 +514,11 @@ int v3_handle_efer_write(uint_t msr, struct v3_msr src, void * priv_data) { // We virtualize the guests efer to hide the SVME and LMA bits guest_efer->value = src.value; - + + // Enable/Disable Syscall + shadow_efer->sce = src.value & 0x1; + + // We have to handle long mode writes.... /*