summaryrefslogtreecommitdiff
path: root/arch/x86_64/kernel/setup64.c
diff options
context:
space:
mode:
authorKeith Owens <kaos@ocs.com.au>2006-08-30 19:37:19 +0200
committerLinus Torvalds <torvalds@g5.osdl.org>2006-08-30 16:05:16 -0700
commit01ebb77b31149d847726a8847ad0d37631d7f049 (patch)
treea91d01f8c17d24041a4f2015e093ddfbd9defa1e /arch/x86_64/kernel/setup64.c
parent386dcafaacd212ef4a8aeed67a7db3ffbb44c7b2 (diff)
downloadlwn-01ebb77b31149d847726a8847ad0d37631d7f049.tar.gz
lwn-01ebb77b31149d847726a8847ad0d37631d7f049.zip
[PATCH] x86_64: Save original IST values for checking stack addresses
The values in init_tss.ist[] can change when an IST event occurs. Save the original IST values for checking stack addresses when debugging or doing stack traces. Signed-off-by: Keith Owens <kaos@ocs.com.au> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/x86_64/kernel/setup64.c')
-rw-r--r--arch/x86_64/kernel/setup64.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/x86_64/kernel/setup64.c b/arch/x86_64/kernel/setup64.c
index 6fe58a634b5f..417de564456e 100644
--- a/arch/x86_64/kernel/setup64.c
+++ b/arch/x86_64/kernel/setup64.c
@@ -189,6 +189,7 @@ void __cpuinit cpu_init (void)
{
int cpu = stack_smp_processor_id();
struct tss_struct *t = &per_cpu(init_tss, cpu);
+ struct orig_ist *orig_ist = &per_cpu(orig_ist, cpu);
unsigned long v;
char *estacks = NULL;
struct task_struct *me;
@@ -256,7 +257,7 @@ void __cpuinit cpu_init (void)
estacks += EXCEPTION_STKSZ;
break;
}
- t->ist[v] = (unsigned long)estacks;
+ orig_ist->ist[v] = t->ist[v] = (unsigned long)estacks;
}
t->io_bitmap_base = offsetof(struct tss_struct, io_bitmap);