diff options
author | Keith Owens <kaos@ocs.com.au> | 2006-09-26 04:52:38 -0400 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-09-26 04:52:38 -0400 |
commit | f574164491d00d28b727d713685fb5edc9138200 (patch) | |
tree | 7ab1a5a2257e27824cf3762fcf276840259deceb /arch/x86_64/kernel/setup64.c | |
parent | 575400d1b483fbe9e03c68758059bfaf4e4768d1 (diff) |
[PATCH] Remove most of the special cases for the debug IST stack
Remove most of the special cases for the debug IST stack. This is a
follow on clean up patch, it requires the bug fix patch that adds
orig_ist.
Signed-off-by: Keith Owens <kaos@ocs.com.au>
Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'arch/x86_64/kernel/setup64.c')
-rw-r--r-- | arch/x86_64/kernel/setup64.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/arch/x86_64/kernel/setup64.c b/arch/x86_64/kernel/setup64.c index 491361752c70..9332d2361e08 100644 --- a/arch/x86_64/kernel/setup64.c +++ b/arch/x86_64/kernel/setup64.c | |||
@@ -237,28 +237,17 @@ void __cpuinit cpu_init (void) | |||
237 | * set up and load the per-CPU TSS | 237 | * set up and load the per-CPU TSS |
238 | */ | 238 | */ |
239 | for (v = 0; v < N_EXCEPTION_STACKS; v++) { | 239 | for (v = 0; v < N_EXCEPTION_STACKS; v++) { |
240 | static const unsigned int order[N_EXCEPTION_STACKS] = { | ||
241 | [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STACK_ORDER, | ||
242 | [DEBUG_STACK - 1] = DEBUG_STACK_ORDER | ||
243 | }; | ||
240 | if (cpu) { | 244 | if (cpu) { |
241 | static const unsigned int order[N_EXCEPTION_STACKS] = { | ||
242 | [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STACK_ORDER, | ||
243 | [DEBUG_STACK - 1] = DEBUG_STACK_ORDER | ||
244 | }; | ||
245 | |||
246 | estacks = (char *)__get_free_pages(GFP_ATOMIC, order[v]); | 245 | estacks = (char *)__get_free_pages(GFP_ATOMIC, order[v]); |
247 | if (!estacks) | 246 | if (!estacks) |
248 | panic("Cannot allocate exception stack %ld %d\n", | 247 | panic("Cannot allocate exception stack %ld %d\n", |
249 | v, cpu); | 248 | v, cpu); |
250 | } | 249 | } |
251 | switch (v + 1) { | 250 | estacks += PAGE_SIZE << order[v]; |
252 | #if DEBUG_STKSZ > EXCEPTION_STKSZ | ||
253 | case DEBUG_STACK: | ||
254 | cpu_pda(cpu)->debugstack = (unsigned long)estacks; | ||
255 | estacks += DEBUG_STKSZ; | ||
256 | break; | ||
257 | #endif | ||
258 | default: | ||
259 | estacks += EXCEPTION_STKSZ; | ||
260 | break; | ||
261 | } | ||
262 | orig_ist->ist[v] = t->ist[v] = (unsigned long)estacks; | 251 | orig_ist->ist[v] = t->ist[v] = (unsigned long)estacks; |
263 | } | 252 | } |
264 | 253 | ||