Skip to content

Commit f18ef97

Browse files
committed
KVM: selftests: Add macro for TSS selector, rename up code/data macros
Add a proper #define for the TSS selector instead of open coding 0x18 and hoping future developers don't use that selector for something else. Opportunistically rename the code and data selector macros to shorten the names, align the naming with the kernel's scheme, and capture that they are *kernel* segments. Reviewed-by: Ackerley Tng <ackerleytng@google.com> Link: https://lore.kernel.org/r/20240314232637.2538648-17-seanjc@google.com Signed-off-by: Sean Christopherson <seanjc@google.com>
1 parent a2834e6 commit f18ef97

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

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

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@
1515
#define NUM_INTERRUPTS 256
1616
#endif
1717

18-
#define DEFAULT_CODE_SELECTOR 0x8
19-
#define DEFAULT_DATA_SELECTOR 0x10
18+
#define KERNEL_CS 0x8
19+
#define KERNEL_DS 0x10
20+
#define KERNEL_TSS 0x18
2021

2122
#define MAX_NR_CPUID_ENTRIES 100
2223

@@ -548,11 +549,11 @@ static void vcpu_init_sregs(struct kvm_vm *vm, struct kvm_vcpu *vcpu)
548549
sregs.efer |= (EFER_LME | EFER_LMA | EFER_NX);
549550

550551
kvm_seg_set_unusable(&sregs.ldt);
551-
kvm_seg_set_kernel_code_64bit(vm, DEFAULT_CODE_SELECTOR, &sregs.cs);
552-
kvm_seg_set_kernel_data_64bit(vm, DEFAULT_DATA_SELECTOR, &sregs.ds);
553-
kvm_seg_set_kernel_data_64bit(vm, DEFAULT_DATA_SELECTOR, &sregs.es);
554-
kvm_seg_set_kernel_data_64bit(NULL, DEFAULT_DATA_SELECTOR, &sregs.gs);
555-
kvm_setup_tss_64bit(vm, &sregs.tr, 0x18);
552+
kvm_seg_set_kernel_code_64bit(vm, KERNEL_CS, &sregs.cs);
553+
kvm_seg_set_kernel_data_64bit(vm, KERNEL_DS, &sregs.ds);
554+
kvm_seg_set_kernel_data_64bit(vm, KERNEL_DS, &sregs.es);
555+
kvm_seg_set_kernel_data_64bit(NULL, KERNEL_DS, &sregs.gs);
556+
kvm_setup_tss_64bit(vm, &sregs.tr, KERNEL_TSS);
556557

557558
sregs.cr3 = vm->pgd;
558559
vcpu_sregs_set(vcpu, &sregs);
@@ -621,8 +622,7 @@ static void vm_init_descriptor_tables(struct kvm_vm *vm)
621622

622623
/* Handlers have the same address in both address spaces.*/
623624
for (i = 0; i < NUM_INTERRUPTS; i++)
624-
set_idt_entry(vm, i, (unsigned long)(&idt_handlers)[i], 0,
625-
DEFAULT_CODE_SELECTOR);
625+
set_idt_entry(vm, i, (unsigned long)(&idt_handlers)[i], 0, KERNEL_CS);
626626

627627
*(vm_vaddr_t *)addr_gva2hva(vm, (vm_vaddr_t)(&exception_handlers)) = vm->handlers;
628628
}

0 commit comments

Comments
 (0)