diff --git a/repos/base-hw/src/core/spec/x86_64/tss.cc b/repos/base-hw/src/core/spec/x86_64/tss.cc index 6fed6e7a0..87d804d05 100644 --- a/repos/base-hw/src/core/spec/x86_64/tss.cc +++ b/repos/base-hw/src/core/spec/x86_64/tss.cc @@ -1,14 +1,19 @@ +#include + #include "tss.h" using namespace Genode; -extern char kernel_stack[]; +extern int _mt_kernel_interrupt_stack; void Tss::setup(addr_t const virt_base) { - this->rsp0 = (addr_t)kernel_stack; - this->rsp1 = (addr_t)kernel_stack; - this->rsp2 = (addr_t)kernel_stack; + addr_t const stack_addr = _virt_mtc_addr(virt_base, + (addr_t)&_mt_kernel_interrupt_stack); + + this->rsp0 = stack_addr; + this->rsp1 = stack_addr; + this->rsp2 = stack_addr; }