Skip to content

Commit 0d95817

Browse files
Ackerley Tngsean-jc
authored andcommitted
KVM: selftests: Fix off-by-one initialization of GDT limit
Fix an off-by-one bug in the initialization of the GDT limit, which as defined in the SDM is inclusive, not exclusive. Note, vcpu_init_descriptor_tables() gets the limit correct, it's only vcpu_setup() that is broken, i.e. only tests that _don't_ invoke vcpu_init_descriptor_tables() can have problems. And the fact that KVM effectively initializes the GDT twice will be cleaned up in the near future. Signed-off-by: Ackerley Tng <ackerleytng@google.com> [sean: rewrite changelog] Link: https://lore.kernel.org/r/20240314232637.2538648-5-seanjc@google.com Signed-off-by: Sean Christopherson <seanjc@google.com>
1 parent 3a085fb commit 0d95817

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

tools/testing/selftests/kvm/lib/x86_64/processor.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -523,7 +523,7 @@ static void kvm_setup_gdt(struct kvm_vm *vm, struct kvm_dtable *dt)
523523
vm->arch.gdt = __vm_vaddr_alloc_page(vm, MEM_REGION_DATA);
524524

525525
dt->base = vm->arch.gdt;
526-
dt->limit = getpagesize();
526+
dt->limit = getpagesize() - 1;
527527
}
528528

529529
static void kvm_setup_tss_64bit(struct kvm_vm *vm, struct kvm_segment *segp,

0 commit comments

Comments
 (0)