From: Jack Lange Date: Wed, 12 Jan 2011 00:15:28 +0000 (-0600) Subject: added support for unhooking an MSR X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=commitdiff_plain;h=4a9377be280dd8f2c298fd845d63728650a1060f;p=palacios.git added support for unhooking an MSR --- diff --git a/palacios/src/palacios/vmm_msr.c b/palacios/src/palacios/vmm_msr.c index 66a14d4..3b13f6b 100644 --- a/palacios/src/palacios/vmm_msr.c +++ b/palacios/src/palacios/vmm_msr.c @@ -125,8 +125,22 @@ int v3_hook_msr(struct v3_vm_info * vm, uint_t msr, int v3_unhook_msr(struct v3_vm_info * vm, uint_t msr) { - PrintError("Unhooking MSRs currently not supported\n"); - return -1; + struct v3_msr_hook * hook = v3_get_msr_hook(vm, msr); + + if (hook == NULL) { + PrintError("Could not find MSR to unhook %u (0x%x)\n", msr, msr); + return -1; + } + + list_del(&(hook->link)); + + if (vm->msr_map.update_map) { + vm->msr_map.update_map(vm, msr, 0, 0); + } + + V3_Free(hook); + + return 0; }