diff options
author | Ashish Kalra <Ashish.Kalra@freescale.com> | 2011-04-22 17:48:27 -0400 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2011-06-22 22:44:55 -0400 |
commit | 1325a684b553d4b5c41ae0482f8991b43f945746 (patch) | |
tree | 38c6be6cc62f49dd5ef44f9fc4e7f347cf3dd845 /arch/powerpc/include/asm/processor.h | |
parent | dc2c9c52b604f51b1416ed87ff54a1c77a1a8b5b (diff) |
powerpc/85xx: Save scratch registers to thread info instead of using SPRGs.
We expect this is actually faster, and we end up needing more space than we
can get from the SPRGs in some instances. This is also useful when running
as a guest OS - SPRGs4-7 do not have guest versions.
8 slots are allocated in thread_info for this even though we only actually
use 4 of them - this allows space for future code to have more scratch
space (and we know we'll need it for things like hugetlb).
Signed-off-by: Ashish Kalra <Ashish.Kalra@freescale.com>
Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/include/asm/processor.h')
-rw-r--r-- | arch/powerpc/include/asm/processor.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/processor.h b/arch/powerpc/include/asm/processor.h index d50c2b6d9bc3..eb11a446720e 100644 --- a/arch/powerpc/include/asm/processor.h +++ b/arch/powerpc/include/asm/processor.h | |||
@@ -20,6 +20,7 @@ | |||
20 | 20 | ||
21 | #ifndef __ASSEMBLY__ | 21 | #ifndef __ASSEMBLY__ |
22 | #include <linux/compiler.h> | 22 | #include <linux/compiler.h> |
23 | #include <linux/cache.h> | ||
23 | #include <asm/ptrace.h> | 24 | #include <asm/ptrace.h> |
24 | #include <asm/types.h> | 25 | #include <asm/types.h> |
25 | 26 | ||
@@ -156,6 +157,10 @@ struct thread_struct { | |||
156 | #endif | 157 | #endif |
157 | struct pt_regs *regs; /* Pointer to saved register state */ | 158 | struct pt_regs *regs; /* Pointer to saved register state */ |
158 | mm_segment_t fs; /* for get_fs() validation */ | 159 | mm_segment_t fs; /* for get_fs() validation */ |
160 | #ifdef CONFIG_BOOKE | ||
161 | /* BookE base exception scratch space; align on cacheline */ | ||
162 | unsigned long normsave[8] ____cacheline_aligned; | ||
163 | #endif | ||
159 | #ifdef CONFIG_PPC32 | 164 | #ifdef CONFIG_PPC32 |
160 | void *pgdir; /* root of page-table tree */ | 165 | void *pgdir; /* root of page-table tree */ |
161 | #endif | 166 | #endif |