X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmx_assist.c;h=777a3124202c9a04810a37c9fbaee5af8b8bed5b;hb=82d082daad3fe8afad4be97d97093a3dfb768e1f;hp=fa67d975461a934b16c9600aab9a74fe5a609d47;hpb=a7cacea293dbc2fbbbe36421054eff95f88390d4;p=palacios.git diff --git a/palacios/src/palacios/vmx_assist.c b/palacios/src/palacios/vmx_assist.c index fa67d97..777a312 100644 --- a/palacios/src/palacios/vmx_assist.c +++ b/palacios/src/palacios/vmx_assist.c @@ -304,14 +304,10 @@ int v3_vmxassist_init(struct guest_info * core, struct vmx_data * vmx_state) { }; - addr_t vmxassist_gdt = 0; - - if (v3_gpa_to_hva(core, VMXASSIST_GDT, &vmxassist_gdt) == -1) { - PrintError(core->vm_info, core, "Could not find VMXASSIST GDT destination\n"); + if (v3_write_gpa_memory(core, VMXASSIST_GDT, sizeof(uint64_t)*5, (void*)gdt)!=sizeof(uint64_t)*5) { + PrintError(core->vm_info, core, "Could not write VMXASSIST GDT\n"); return -1; } - - memcpy((void *)vmxassist_gdt, gdt, sizeof(uint64_t) * 5); core->segments.gdtr.base = VMXASSIST_GDT; @@ -335,7 +331,7 @@ int v3_vmxassist_init(struct guest_info * core, struct vmx_data * vmx_state) { if (core->shdw_pg_mode == NESTED_PAGING) { // setup 1to1 page table internally. - int i = 0; + unsigned long i = 0; pde32_4MB_t * pde = NULL; V3_Print(core->vm_info, core, "Setting up internal VMXASSIST page tables\n"); @@ -366,15 +362,12 @@ int v3_vmxassist_init(struct guest_info * core, struct vmx_data * vmx_state) { extern uint8_t v3_vmxassist_start[]; extern uint8_t v3_vmxassist_end[]; - addr_t vmxassist_dst = 0; - if (v3_gpa_to_hva(core, VMXASSIST_START, &vmxassist_dst) == -1) { - PrintError(core->vm_info, core, "Could not find VMXASSIST destination\n"); + if (v3_write_gpa_memory(core, VMXASSIST_START, v3_vmxassist_end-v3_vmxassist_start,v3_vmxassist_start)!=v3_vmxassist_end-v3_vmxassist_start) { + PrintError(core->vm_info, core, "Could not write VMXASSIST\n"); return -1; } - memcpy((void *)vmxassist_dst, v3_vmxassist_start, v3_vmxassist_end - v3_vmxassist_start); - vmx_state->assist_state = VMXASSIST_OFF; }