From 57da1efd4f622d93e33dfbd26ca2cd141744aaa2 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Fri, 27 Aug 2004 02:27:33 +0000 Subject: [PATCH] Fix TSS descriptor. --- src/threads/init.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/threads/init.c b/src/threads/init.c index 8a2c491..234c41e 100644 --- a/src/threads/init.c +++ b/src/threads/init.c @@ -120,9 +120,10 @@ make_data_desc (int dpl) } static uint64_t -make_tss_desc (uint32_t base) +make_tss_desc (void *vaddr) { - return make_seg_desc (base, 0x67, SYS_SYSTEM, TYPE_TSS_32_A, 0, GRAN_BYTE); + return make_seg_desc ((uint32_t) vaddr, + 0x67, SYS_SYSTEM, TYPE_TSS_32_A, 0, GRAN_BYTE); } uint64_t gdt[SEL_CNT]; @@ -150,7 +151,7 @@ gdt_init (void) gdt[SEL_KDSEG / sizeof *gdt] = make_data_desc (0); gdt[SEL_UCSEG / sizeof *gdt] = make_code_desc (3); gdt[SEL_UDSEG / sizeof *gdt] = make_data_desc (3); - gdt[SEL_TSS / sizeof *gdt] = make_tss_desc (vtop (tss)); + gdt[SEL_TSS / sizeof *gdt] = make_tss_desc (tss); /* Load GDTR, TR. */ gdtr_operand = make_dtr_operand (sizeof gdt - 1, gdt); -- 2.30.2