diff --git a/proto/hypervisor.c b/proto/hypervisor.c index f0ed19ebc44c08fe121bb0b1ca81b3d60ff55f4b..6423599fd70fa67b9576dd7896ac90f0122ae724 100644 --- a/proto/hypervisor.c +++ b/proto/hypervisor.c @@ -188,7 +188,10 @@ static int my_init(void) { return -ENOMEM; } - vmxon_regions[0] = vmxon_reg; + if (init_vcpu(&vcpus[0], vmxon_reg) != 0) { + pr_err("VCPU initialization failed\n"); + return -EFAULT; + } pr_info("VA of the allocated region = 0x%px\n", vmxon_reg); pr_info("PA of the allocated region = 0x%lx\n", __pa(vmxon_reg)); @@ -248,7 +251,7 @@ static void my_exit(void) { } pr_info("Freeing memory of the VMXON region\n"); - kfree(vmxon_regions[0]); + kfree(vcpus[0].vmxon); pr_info("vmbr.ko has exited\n"); }