|
15 | 15 | #define NUM_INTERRUPTS 256
|
16 | 16 | #endif
|
17 | 17 |
|
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 |
20 | 21 |
|
21 | 22 | #define MAX_NR_CPUID_ENTRIES 100
|
22 | 23 |
|
@@ -548,11 +549,11 @@ static void vcpu_init_sregs(struct kvm_vm *vm, struct kvm_vcpu *vcpu)
|
548 | 549 | sregs.efer |= (EFER_LME | EFER_LMA | EFER_NX);
|
549 | 550 |
|
550 | 551 | 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); |
556 | 557 |
|
557 | 558 | sregs.cr3 = vm->pgd;
|
558 | 559 | vcpu_sregs_set(vcpu, &sregs);
|
@@ -621,8 +622,7 @@ static void vm_init_descriptor_tables(struct kvm_vm *vm)
|
621 | 622 |
|
622 | 623 | /* Handlers have the same address in both address spaces.*/
|
623 | 624 | 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); |
626 | 626 |
|
627 | 627 | *(vm_vaddr_t *)addr_gva2hva(vm, (vm_vaddr_t)(&exception_handlers)) = vm->handlers;
|
628 | 628 | }
|
|
0 commit comments