diff --git a/src/arch/x86_64/gdt.c b/src/arch/x86_64/gdt.c index 75fdf395..caaa2881 100644 --- a/src/arch/x86_64/gdt.c +++ b/src/arch/x86_64/gdt.c @@ -59,10 +59,8 @@ void gdt_bspinit(){ setseg(&gdt->ucode64, 0xFFFFF, 0, FLAGS_PAGE_GRANULARITY | FLAGS_LONG, ACCESS_PRESENT | ACCESS_SEGMENT | ACCESS_EXEC | ACCESS_CODE_READ | ACCESS_DPL3); setseg(&gdt->udata64, 0xFFFFF, 0, FLAGS_PAGE_GRANULARITY | FLAGS_LONG, ACCESS_PRESENT | ACCESS_SEGMENT | ACCESS_DATA_WRITE | ACCESS_DPL3); - - // TODO get this working right - //setsys64(&gdt->ist, sizeof(ist_t), (uint64_t)(arch_getcls()), FLAGS_LONG, SYSTEM_TYPE_IST | ACCESS_PRESENT); + setsys64(&gdt->ist, sizeof(ist_t), (uint64_t)(&arch_getcls()->ist), FLAGS_LONG, SYSTEM_TYPE_IST | ACCESS_PRESENT); reloadgdtr();