Allocate the GDT during creation of non-barebones VMs instead of waiting
until the first vCPU is created, as the whole point of non-barebones VMs
is to be able to run vCPUs, i.e. the GDT is going to get allocated no
matter what.
Reviewed-by: Ackerley Tng <ackerleytng@google.com>
Link: https://lore.kernel.org/r/20240314232637.2538648-13-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
static void kvm_setup_gdt(struct kvm_vm *vm, struct kvm_dtable *dt)
{
- if (!vm->arch.gdt)
- vm->arch.gdt = __vm_vaddr_alloc_page(vm, MEM_REGION_DATA);
-
dt->base = vm->arch.gdt;
dt->limit = getpagesize() - 1;
}
extern void *idt_handlers;
int i;
+ vm->arch.gdt = __vm_vaddr_alloc_page(vm, MEM_REGION_DATA);
vm->arch.idt = __vm_vaddr_alloc_page(vm, MEM_REGION_DATA);
vm->handlers = __vm_vaddr_alloc_page(vm, MEM_REGION_DATA);
/* Handlers have the same address in both address spaces.*/