From 8b1c9befbfbd443bd95e77db01c70f1741aa2511 Mon Sep 17 00:00:00 2001 From: Tim Abbott Date: Fri, 18 Sep 2009 16:32:44 -0400 Subject: m32r: make PAGE_SIZE available to assembly. page.h includes ifndef __ASSEMBLY__ guards, but PAGE_SIZE is defined using "1UL", which the assembler does not support. Use the _AC macro from const.h to make it available to assembly (and linker scripts). Signed-off-by: Tim Abbott Signed-off-by: Hirokazu Takata --- arch/m32r/include/asm/page.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'arch/m32r/include/asm') diff --git a/arch/m32r/include/asm/page.h b/arch/m32r/include/asm/page.h index 11777f7a5628..725ede8f2889 100644 --- a/arch/m32r/include/asm/page.h +++ b/arch/m32r/include/asm/page.h @@ -1,9 +1,11 @@ #ifndef _ASM_M32R_PAGE_H #define _ASM_M32R_PAGE_H +#include + /* PAGE_SHIFT determines the page size */ #define PAGE_SHIFT 12 -#define PAGE_SIZE (1UL << PAGE_SHIFT) +#define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE-1)) #ifndef __ASSEMBLY__ -- cgit v1.2.3 From a7efb879ab5b07726873ace8305373bdf68be8a8 Mon Sep 17 00:00:00 2001 From: Tim Abbott Date: Fri, 18 Sep 2009 16:32:45 -0400 Subject: m32r: Define THREAD_SIZE only once. Previously, m32r's asm/thread_info.h defined THREAD_SIZE differently for assembly and C code; now that PAGE_SIZE is usable from assembly, these can be combined. Also, m32r's asm/processor.h redefines THREAD_SIZE to the same value; remove this redundant definition. Signed-off-by: Tim Abbott Signed-off-by: Hirokazu Takata --- arch/m32r/include/asm/processor.h | 2 -- arch/m32r/include/asm/thread_info.h | 6 ++---- 2 files changed, 2 insertions(+), 6 deletions(-) (limited to 'arch/m32r/include/asm') diff --git a/arch/m32r/include/asm/processor.h b/arch/m32r/include/asm/processor.h index 1a997fc148a2..8397c249989b 100644 --- a/arch/m32r/include/asm/processor.h +++ b/arch/m32r/include/asm/processor.h @@ -140,8 +140,6 @@ unsigned long get_wchan(struct task_struct *p); #define KSTK_EIP(tsk) ((tsk)->thread.lr) #define KSTK_ESP(tsk) ((tsk)->thread.sp) -#define THREAD_SIZE (2*PAGE_SIZE) - #define cpu_relax() barrier() #endif /* _ASM_M32R_PROCESSOR_H */ diff --git a/arch/m32r/include/asm/thread_info.h b/arch/m32r/include/asm/thread_info.h index 71578151a403..4d6616936c36 100644 --- a/arch/m32r/include/asm/thread_info.h +++ b/arch/m32r/include/asm/thread_info.h @@ -55,6 +55,8 @@ struct thread_info { #define PREEMPT_ACTIVE 0x10000000 +#define THREAD_SIZE (PAGE_SIZE << 1) + /* * macros/functions for gaining access to the thread information structure */ @@ -76,8 +78,6 @@ struct thread_info { #define init_thread_info (init_thread_union.thread_info) #define init_stack (init_thread_union.stack) -#define THREAD_SIZE (2*PAGE_SIZE) - /* how to get the thread information struct from C */ static inline struct thread_info *current_thread_info(void) { @@ -127,8 +127,6 @@ static inline unsigned int get_thread_fault_code(void) #else /* !__ASSEMBLY__ */ -#define THREAD_SIZE 8192 - /* how to get the thread information struct from ASM */ #define GET_THREAD_INFO(reg) GET_THREAD_INFO reg .macro GET_THREAD_INFO reg -- cgit v1.2.3 From 00b01b246bc2e28763cbd85f0dc949d6c0d38c13 Mon Sep 17 00:00:00 2001 From: Tim Abbott Date: Fri, 18 Sep 2009 16:32:46 -0400 Subject: m32r: Move GET_THREAD_INFO definition out of asm/thread_info.h. Previously, asm/thread_info.h was not usable from linker scripts because it contains a piece of .macro code. Since that code was only used in the m32r entry.S, the right fix is probably to move the macro there. Signed-off-by: Tim Abbott Signed-off-by: Hirokazu Takata --- arch/m32r/include/asm/thread_info.h | 9 --------- arch/m32r/kernel/entry.S | 7 +++++++ 2 files changed, 7 insertions(+), 9 deletions(-) (limited to 'arch/m32r/include/asm') diff --git a/arch/m32r/include/asm/thread_info.h b/arch/m32r/include/asm/thread_info.h index 4d6616936c36..ed240b6e8e77 100644 --- a/arch/m32r/include/asm/thread_info.h +++ b/arch/m32r/include/asm/thread_info.h @@ -125,15 +125,6 @@ static inline unsigned int get_thread_fault_code(void) return ti->flags >> TI_FLAG_FAULT_CODE_SHIFT; } -#else /* !__ASSEMBLY__ */ - -/* how to get the thread information struct from ASM */ -#define GET_THREAD_INFO(reg) GET_THREAD_INFO reg - .macro GET_THREAD_INFO reg - ldi \reg, #-THREAD_SIZE - and \reg, sp - .endm - #endif /* diff --git a/arch/m32r/kernel/entry.S b/arch/m32r/kernel/entry.S index 612d35b082a6..403869833b98 100644 --- a/arch/m32r/kernel/entry.S +++ b/arch/m32r/kernel/entry.S @@ -118,6 +118,13 @@ #define resume_kernel restore_all #endif +/* how to get the thread information struct from ASM */ +#define GET_THREAD_INFO(reg) GET_THREAD_INFO reg + .macro GET_THREAD_INFO reg + ldi \reg, #-THREAD_SIZE + and \reg, sp + .endm + ENTRY(ret_from_fork) pop r0 bl schedule_tail -- cgit v1.2.3