diff options
Diffstat (limited to 'arch/powerpc/include/asm/processor.h')
| -rw-r--r-- | arch/powerpc/include/asm/processor.h | 31 | 
1 files changed, 12 insertions, 19 deletions
diff --git a/arch/powerpc/include/asm/processor.h b/arch/powerpc/include/asm/processor.h index a2123f291ab0..1189d04f3bd1 100644 --- a/arch/powerpc/include/asm/processor.h +++ b/arch/powerpc/include/asm/processor.h @@ -110,13 +110,18 @@ void release_thread(struct task_struct *);  #define TASK_SIZE_128TB (0x0000800000000000UL)  #define TASK_SIZE_512TB (0x0002000000000000UL) -#ifdef CONFIG_PPC_BOOK3S_64 +/* + * For now 512TB is only supported with book3s and 64K linux page size. + */ +#if defined(CONFIG_PPC_BOOK3S_64) && defined(CONFIG_PPC_64K_PAGES)  /*   * Max value currently used:   */ -#define TASK_SIZE_USER64	TASK_SIZE_512TB +#define TASK_SIZE_USER64		TASK_SIZE_512TB +#define DEFAULT_MAP_WINDOW_USER64	TASK_SIZE_128TB  #else -#define TASK_SIZE_USER64	TASK_SIZE_64TB +#define TASK_SIZE_USER64		TASK_SIZE_64TB +#define DEFAULT_MAP_WINDOW_USER64	TASK_SIZE_64TB  #endif  /* @@ -132,7 +137,7 @@ void release_thread(struct task_struct *);   * space during mmap's.   */  #define TASK_UNMAPPED_BASE_USER32 (PAGE_ALIGN(TASK_SIZE_USER32 / 4)) -#define TASK_UNMAPPED_BASE_USER64 (PAGE_ALIGN(TASK_SIZE_128TB / 4)) +#define TASK_UNMAPPED_BASE_USER64 (PAGE_ALIGN(DEFAULT_MAP_WINDOW_USER64 / 4))  #define TASK_UNMAPPED_BASE ((is_32bit_task()) ? \  		TASK_UNMAPPED_BASE_USER32 : TASK_UNMAPPED_BASE_USER64 ) @@ -143,21 +148,15 @@ void release_thread(struct task_struct *);   * with 128TB and conditionally enable upto 512TB   */  #ifdef CONFIG_PPC_BOOK3S_64 -#define DEFAULT_MAP_WINDOW	((is_32bit_task()) ? \ -				 TASK_SIZE_USER32 : TASK_SIZE_128TB) +#define DEFAULT_MAP_WINDOW	((is_32bit_task()) ?			\ +				 TASK_SIZE_USER32 : DEFAULT_MAP_WINDOW_USER64)  #else  #define DEFAULT_MAP_WINDOW	TASK_SIZE  #endif  #ifdef __powerpc64__ -#ifdef CONFIG_PPC_BOOK3S_64 -/* Limit stack to 128TB */ -#define STACK_TOP_USER64 TASK_SIZE_128TB -#else -#define STACK_TOP_USER64 TASK_SIZE_USER64 -#endif - +#define STACK_TOP_USER64 DEFAULT_MAP_WINDOW_USER64  #define STACK_TOP_USER32 TASK_SIZE_USER32  #define STACK_TOP (is_32bit_task() ? \ @@ -379,12 +378,6 @@ struct thread_struct {  }  #endif -/* - * Return saved PC of a blocked thread. For now, this is the "user" PC - */ -#define thread_saved_pc(tsk)    \ -        ((tsk)->thread.regs? (tsk)->thread.regs->nip: 0) -  #define task_pt_regs(tsk)	((struct pt_regs *)(tsk)->thread.regs)  unsigned long get_wchan(struct task_struct *p);  |