X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fsvm.c;h=cbb680b75f7e8e36de0d619b104de4ae975cccec;hp=f61fadf8353eff206f3b3b9612c56589bd109877;hb=a9e204d157a33976ca454b2ce8b161c2a5501b14;hpb=e3f45cda75462948e8d2ad89a6167fbecc8d13f5 diff --git a/palacios/src/palacios/svm.c b/palacios/src/palacios/svm.c index f61fadf..cbb680b 100644 --- a/palacios/src/palacios/svm.c +++ b/palacios/src/palacios/svm.c @@ -314,6 +314,8 @@ static void Init_VMCB_BIOS(vmcb_t * vmcb, struct guest_info * core) { { +#define INT_PENDING_AMD_MSR 0xc0010055 + v3_hook_msr(core->vm_info, IA32_STAR_MSR, NULL, NULL, NULL); v3_hook_msr(core->vm_info, IA32_LSTAR_MSR, NULL, NULL, NULL); v3_hook_msr(core->vm_info, IA32_FMASK_MSR, NULL, NULL, NULL); @@ -323,6 +325,9 @@ static void Init_VMCB_BIOS(vmcb_t * vmcb, struct guest_info * core) { v3_hook_msr(core->vm_info, SYSENTER_CS_MSR, NULL, NULL, NULL); v3_hook_msr(core->vm_info, SYSENTER_ESP_MSR, NULL, NULL, NULL); v3_hook_msr(core->vm_info, SYSENTER_EIP_MSR, NULL, NULL, NULL); + + // Passthrough read operations are ok. + v3_hook_msr(core->vm_info, INT_PENDING_AMD_MSR, NULL, v3_msr_unhandled_write, NULL); } }