From 28011bc61bb09a89f676b129e9bd6b3b3e625fcb Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Thu, 30 Aug 2007 09:58:46 -0700 Subject: [PATCH] --- yaml --- r: 64565 b: refs/heads/master c: a1c582d0720f2eff61043e90711767decf37b917 h: refs/heads/master i: 64563: 8e0de36b2bb11f294e7f0adcdf6990ba4c90d740 v: v3 --- [refs] | 2 +- trunk/arch/xtensa/kernel/process.c | 1 + trunk/drivers/lguest/interrupts_and_traps.c | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index ffac9bc70ade..37fc266a9611 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fc43dca9e75b87d24a16d5be7b497e83837d9d31 +refs/heads/master: a1c582d0720f2eff61043e90711767decf37b917 diff --git a/trunk/arch/xtensa/kernel/process.c b/trunk/arch/xtensa/kernel/process.c index ce758bab95b1..dd498f1604e1 100644 --- a/trunk/arch/xtensa/kernel/process.c +++ b/trunk/arch/xtensa/kernel/process.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include diff --git a/trunk/drivers/lguest/interrupts_and_traps.c b/trunk/drivers/lguest/interrupts_and_traps.c index 49aa55577d0d..39731232d827 100644 --- a/trunk/drivers/lguest/interrupts_and_traps.c +++ b/trunk/drivers/lguest/interrupts_and_traps.c @@ -270,8 +270,11 @@ void pin_stack_pages(struct lguest *lg) /* Depending on the CONFIG_4KSTACKS option, the Guest can have one or * two pages of stack space. */ for (i = 0; i < lg->stack_pages; i++) - /* The stack grows *upwards*, hence the subtraction */ - pin_page(lg, lg->esp1 - i * PAGE_SIZE); + /* The stack grows *upwards*, so the address we're given is the + * start of the page after the kernel stack. Subtract one to + * get back onto the first stack page, and keep subtracting to + * get to the rest of the stack pages. */ + pin_page(lg, lg->esp1 - 1 - i * PAGE_SIZE); } /* Direct traps also mean that we need to know whenever the Guest wants to use