From 09c90e575179be93d7c5e80574747bb7bc6a186e Mon Sep 17 00:00:00 2001 From: Reto Buerki Date: Fri, 27 Feb 2015 13:10:41 +0100 Subject: [PATCH] hw_x86_64: Set interrupt stack in Tss::Setup --- repos/base-hw/src/core/spec/x86_64/tss.cc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) 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; }