mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 1/6] m32r: make PAGE_SIZE available to assembly.
@ 2009-09-07  3:12 Tim Abbott
  2009-09-07  3:12 ` [PATCH 2/6] m32r: Define THREAD_SIZE only once Tim Abbott
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Tim Abbott @ 2009-09-07  3:12 UTC (permalink / raw)
  To: Linux Kernel Mailing List; +Cc: Sam Ravnborg, Tim Abbott, Hirokazu Takata

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 <tabbott@ksplice.com>
Cc: Hirokazu Takata <takata@linux-m32r.org>
---
 arch/m32r/include/asm/page.h |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/arch/m32r/include/asm/page.h b/arch/m32r/include/asm/page.h
index 11777f7..725ede8 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 <linux/const.h>
+
 /* 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__
-- 
1.6.3.3


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 2/6] m32r: Define THREAD_SIZE only once.
  2009-09-07  3:12 [PATCH 1/6] m32r: make PAGE_SIZE available to assembly Tim Abbott
@ 2009-09-07  3:12 ` Tim Abbott
  2009-09-07  5:52   ` Hirokazu Takata
  2009-09-07  3:12 ` [PATCH 3/6] m32r: Move GET_THREAD_INFO definition out of asm/thread_info.h Tim Abbott
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 10+ messages in thread
From: Tim Abbott @ 2009-09-07  3:12 UTC (permalink / raw)
  To: Linux Kernel Mailing List; +Cc: Sam Ravnborg, Tim Abbott, Hirokazu Takata

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 <tabbott@ksplice.com>
Cc: Hirokazu Takata <takata@linux-m32r.org>
---
 arch/m32r/include/asm/processor.h   |    2 --
 arch/m32r/include/asm/thread_info.h |    6 ++----
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/arch/m32r/include/asm/processor.h b/arch/m32r/include/asm/processor.h
index 1a997fc..8397c24 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 07bb5bd..787ac92 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
-- 
1.6.3.3


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 3/6] m32r: Move GET_THREAD_INFO definition out of asm/thread_info.h.
  2009-09-07  3:12 [PATCH 1/6] m32r: make PAGE_SIZE available to assembly Tim Abbott
  2009-09-07  3:12 ` [PATCH 2/6] m32r: Define THREAD_SIZE only once Tim Abbott
@ 2009-09-07  3:12 ` Tim Abbott
  2009-09-07  3:12 ` [PATCH 4/6] m32r: Remove unused .altinstructions and .exit.* code from linker script Tim Abbott
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 10+ messages in thread
From: Tim Abbott @ 2009-09-07  3:12 UTC (permalink / raw)
  To: Linux Kernel Mailing List; +Cc: Sam Ravnborg, Tim Abbott, Hirokazu Takata

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 <tabbott@ksplice.com>
Cc: Hirokazu Takata <takata@linux-m32r.org>
---
 arch/m32r/include/asm/thread_info.h |    9 ---------
 arch/m32r/kernel/entry.S            |    7 +++++++
 2 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/arch/m32r/include/asm/thread_info.h b/arch/m32r/include/asm/thread_info.h
index 787ac92..b8ac0fe 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 612d35b..4038698 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
-- 
1.6.3.3


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 4/6] m32r: Remove unused .altinstructions and .exit.* code from linker script.
  2009-09-07  3:12 [PATCH 1/6] m32r: make PAGE_SIZE available to assembly Tim Abbott
  2009-09-07  3:12 ` [PATCH 2/6] m32r: Define THREAD_SIZE only once Tim Abbott
  2009-09-07  3:12 ` [PATCH 3/6] m32r: Move GET_THREAD_INFO definition out of asm/thread_info.h Tim Abbott
@ 2009-09-07  3:12 ` Tim Abbott
  2009-09-07  3:12 ` [PATCH 5/6] m32r: Move the spi_stack_top and spu_stack_top into .data section Tim Abbott
  2009-09-07  3:12 ` [PATCH 6/6] m32r: Cleanup linker script using new linker script macros Tim Abbott
  4 siblings, 0 replies; 10+ messages in thread
From: Tim Abbott @ 2009-09-07  3:12 UTC (permalink / raw)
  To: Linux Kernel Mailing List; +Cc: Sam Ravnborg, Tim Abbott, Hirokazu Takata

It appears that m32r copied the .altinstructions definition from x86
when the architecture was first merged into Linux.  m32r doesn't put
anything in .altinstructions, so this is just dead code.

The following block affecting .exit.text/.exit.data, which has a
comment also copied from x86, should also be deleted; the linker
script later discards the .exit.text and .exit.data sections.

Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: Hirokazu Takata <takata@linux-m32r.org>
---
 arch/m32r/kernel/vmlinux.lds.S |    9 ---------
 1 files changed, 0 insertions(+), 9 deletions(-)

diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S
index 4179adf..eb3e425 100644
--- a/arch/m32r/kernel/vmlinux.lds.S
+++ b/arch/m32r/kernel/vmlinux.lds.S
@@ -91,15 +91,6 @@ SECTIONS
   .con_initcall.init : { *(.con_initcall.init) }
   __con_initcall_end = .;
   SECURITY_INIT
-  . = ALIGN(4);
-  __alt_instructions = .;
-  .altinstructions : { *(.altinstructions) }
-  __alt_instructions_end = .;
-  .altinstr_replacement : { *(.altinstr_replacement) }
-  /* .exit.text is discard at runtime, not link time, to deal with references
-     from .altinstructions and .eh_frame */
-  .exit.text : { EXIT_TEXT }
-  .exit.data : { EXIT_DATA }
 
 #ifdef CONFIG_BLK_DEV_INITRD
   . = ALIGN(4096);
-- 
1.6.3.3


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 5/6] m32r: Move the spi_stack_top and spu_stack_top into .data section.
  2009-09-07  3:12 [PATCH 1/6] m32r: make PAGE_SIZE available to assembly Tim Abbott
                   ` (2 preceding siblings ...)
  2009-09-07  3:12 ` [PATCH 4/6] m32r: Remove unused .altinstructions and .exit.* code from linker script Tim Abbott
@ 2009-09-07  3:12 ` Tim Abbott
  2009-09-07 12:30   ` Hirokazu Takata
  2009-09-07  3:12 ` [PATCH 6/6] m32r: Cleanup linker script using new linker script macros Tim Abbott
  4 siblings, 1 reply; 10+ messages in thread
From: Tim Abbott @ 2009-09-07  3:12 UTC (permalink / raw)
  To: Linux Kernel Mailing List; +Cc: Sam Ravnborg, Tim Abbott, Hirokazu Takata

Since these get squashed into the .data output section by the m32r
linker script, it seems likely that they don't need their own input
sections.

I'd like an explicit confirmation from Hirokazu Takata that this is
correct (in particular, that there isn't some hidden reason why there
two structures need to be at the start of the .data output section).

This patch is preparation for cleaning up the m32r architecture to use
the new macros in vmlinux.lds.h; if these sections are indeed not
needed, then we can use the RW_DATA_SECTION macro for m32r and save a
bunch of redundant code.

Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: Hirokazu Takata <takata@linux-m32r.org>
---
 arch/m32r/kernel/head.S        |    4 ++--
 arch/m32r/kernel/vmlinux.lds.S |    2 --
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/arch/m32r/kernel/head.S b/arch/m32r/kernel/head.S
index 0a71944..fc4d769 100644
--- a/arch/m32r/kernel/head.S
+++ b/arch/m32r/kernel/head.S
@@ -268,13 +268,13 @@ ENTRY(empty_zero_page)
 /*------------------------------------------------------------------------
  * Stack area
  */
-	.section .spi
+	.section .data
 	ALIGN
 	.global spi_stack_top
 	.zero	1024
 spi_stack_top:
 
-	.section .spu
+	.section .data
 	ALIGN
 	.global spu_stack_top
 	.zero	1024
diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S
index eb3e425..1984b9f 100644
--- a/arch/m32r/kernel/vmlinux.lds.S
+++ b/arch/m32r/kernel/vmlinux.lds.S
@@ -49,8 +49,6 @@ SECTIONS
 
   /* writeable */
   .data : {			/* Data */
-	*(.spu)
-	*(.spi)
 	DATA_DATA
 	CONSTRUCTORS
 	}
-- 
1.6.3.3


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 6/6] m32r: Cleanup linker script using new linker script macros.
  2009-09-07  3:12 [PATCH 1/6] m32r: make PAGE_SIZE available to assembly Tim Abbott
                   ` (3 preceding siblings ...)
  2009-09-07  3:12 ` [PATCH 5/6] m32r: Move the spi_stack_top and spu_stack_top into .data section Tim Abbott
@ 2009-09-07  3:12 ` Tim Abbott
  4 siblings, 0 replies; 10+ messages in thread
From: Tim Abbott @ 2009-09-07  3:12 UTC (permalink / raw)
  To: Linux Kernel Mailing List; +Cc: Sam Ravnborg, Tim Abbott, Hirokazu Takata

This patch is largely a straightforward conversion.  One thing to note
is that the new macros use fewer separate output sections than the old
code; this should have no functional impact but is relevant for people
objdumping vmlinux files.

Also note that it moves the .data.init_task output sections inside
_edata.

Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: Hirokazu Takata <takata@linux-m32r.org>
---
 arch/m32r/kernel/vmlinux.lds.S |   67 +++++----------------------------------
 1 files changed, 9 insertions(+), 58 deletions(-)

diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S
index 1984b9f..b15ed63 100644
--- a/arch/m32r/kernel/vmlinux.lds.S
+++ b/arch/m32r/kernel/vmlinux.lds.S
@@ -4,6 +4,7 @@
 #include <asm-generic/vmlinux.lds.h>
 #include <asm/addrspace.h>
 #include <asm/page.h>
+#include <asm/thread_info.h>
 
 OUTPUT_ARCH(m32r)
 #if defined(__LITTLE_ENDIAN__)
@@ -40,72 +41,22 @@ SECTIONS
 #endif
   _etext = .;			/* End of text section */
 
-  . = ALIGN(16);		/* Exception table */
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
-
+  EXCEPTION_TABLE(16)
   RODATA
-
-  /* writeable */
-  .data : {			/* Data */
-	DATA_DATA
-	CONSTRUCTORS
-	}
-
-  . = ALIGN(4096);
-  __nosave_begin = .;
-  .data_nosave : { *(.data.nosave) }
-  . = ALIGN(4096);
-  __nosave_end = .;
-
-  . = ALIGN(32);
-  .data.cacheline_aligned : { *(.data.cacheline_aligned) }
-
+  RW_DATA_SECTION(32, PAGE_SIZE, THREAD_SIZE)
   _edata = .;			/* End of data section */
 
-  . = ALIGN(8192);		/* init_task */
-  .data.init_task : { *(.data.init_task) }
-
   /* will be freed after init */
-  . = ALIGN(4096);		/* Init code and data */
+  . = ALIGN(PAGE_SIZE);		/* Init code and data */
   __init_begin = .;
-  .init.text : {
-	_sinittext = .;
-	INIT_TEXT
-	_einittext = .;
-  }
-  .init.data : { INIT_DATA }
-  . = ALIGN(16);
-  __setup_start = .;
-  .init.setup : { *(.init.setup) }
-  __setup_end = .;
-  __initcall_start = .;
-  .initcall.init : {
-	INITCALLS
-  }
-  __initcall_end = .;
-  __con_initcall_start = .;
-  .con_initcall.init : { *(.con_initcall.init) }
-  __con_initcall_end = .;
-  SECURITY_INIT
-
-#ifdef CONFIG_BLK_DEV_INITRD
-  . = ALIGN(4096);
-  __initramfs_start = .;
-  .init.ramfs : { *(.init.ramfs) }
-  __initramfs_end = .;
-#endif
-
-  PERCPU(4096)
-  . = ALIGN(4096);
+  INIT_TEXT_SECTION(PAGE_SIZE)
+  INIT_DATA_SECTION(16)
+  PERCPU(PAGE_SIZE)
+  . = ALIGN(PAGE_SIZE);
   __init_end = .;
   /* freed after init ends here */
 
-  __bss_start = .;		/* BSS */
-  .bss : { *(.bss) }
-  . = ALIGN(4);
-  __bss_stop = .;
+  BSS_SECTION(0, 0, 4)
 
   _end = . ;
 
-- 
1.6.3.3


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/6] m32r: Define THREAD_SIZE only once.
  2009-09-07  3:12 ` [PATCH 2/6] m32r: Define THREAD_SIZE only once Tim Abbott
@ 2009-09-07  5:52   ` Hirokazu Takata
  2009-09-07  6:41     ` Hirokazu Takata
  0 siblings, 1 reply; 10+ messages in thread
From: Hirokazu Takata @ 2009-09-07  5:52 UTC (permalink / raw)
  To: Tim Abbott; +Cc: Linux Kernel Mailing List, Sam Ravnborg, Hirokazu Takata

Hello,

From: Tim Abbott <tabbott@ksplice.com>
Subject: [PATCH 2/6] m32r: Define THREAD_SIZE only once.
Date: Sun, 06 Sep 2009 23:12:55 -0400
> 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 <tabbott@ksplice.com>
> Cc: Hirokazu Takata <takata@linux-m32r.org>
> ---
>  arch/m32r/include/asm/processor.h   |    2 --
>  arch/m32r/include/asm/thread_info.h |    6 ++----
>  2 files changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/m32r/include/asm/processor.h b/arch/m32r/include/asm/processor.h
> index 1a997fc..8397c24 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 07bb5bd..787ac92 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
> -- 
> 1.6.3.3
> 

This patch causes build errors:

$ m32r-linux-gnu-gcc -Wp,-MD,arch/m32r/kernel/.entry.o.d  -nostdinc -isystem /usr/lib/gcc/m32r-linux-gnu/4.1.2/include -Iinclude -Iinclude2 -I/project/m32r-linux/kernel/dev/linux-2.6_dev.git/include -I/project/m32r-linux/kernel/dev/linux-2.6_dev.git/arch/m32r/include -include include/linux/autoconf.h -D__KERNEL__ -D__ASSEMBLY__ -DNO_FPU -m32r2 -O2  -c -o arch/m32r/kernel/entry.o /project/m32r-linux/kernel/dev/linux-2.6_dev.git/arch/m32r/kernel/entry.S
/project/m32r-linux/kernel/dev/linux-2.6_dev.git/arch/m32r/kernel/entry.S: Assembler messages:
/project/m32r-linux/kernel/dev/linux-2.6_dev.git/arch/m32r/kernel/entry.S:124: Error: undefined symbol `PAGE_SIZE' in operation
/project/m32r-linux/kernel/dev/linux-2.6_dev.git/arch/m32r/kernel/entry.S:150: Error: undefined symbol `PAGE_SIZE' in operation
/project/m32r-linux/kernel/dev/linux-2.6_dev.git/arch/m32r/kernel/entry.S:159: Error: undefined symbol `PAGE_SIZE' in operation
/project/m32r-linux/kernel/dev/linux-2.6_dev.git/arch/m32r/kernel/entry.S:189: Error: undefined symbol `PAGE_SIZE' in operation
/project/m32r-linux/kernel/dev/linux-2.6_dev.git/arch/m32r/kernel/entry.S:268: Error: undefined symbol `PAGE_SIZE' in operation

It is because entry.s still has PAGE_SIZE symbol, after C preprocessing:

--- arch/m32r/kernel/entry.S ---
 :
121 ENTRY(ret_from_fork)
122         pop     r0
123         bl      schedule_tail
124         GET_THREAD_INFO(r8)
125         bra     syscall_exit
 :
---

--- entry.s (preprocessed entry.S) ---
# 132 "/project/m32r-linux/kernel/dev/linux-2.6_dev.git/arch/m32r/include/asm/th
read_info.h"
 .macro GET_THREAD_INFO reg
 ldi \reg, #-(PAGE_SIZE << 1)
 and \reg, sp
 .endm

  :

# 121 "/project/m32r-linux/kernel/dev/linux-2.6_dev.git/arch/m32r/kernel/ent    ry.S"
ENTRY_M ret_from_fork
 pop r0
 bl schedule_tail
 GET_THREAD_INFO r8
 bra syscall_exit
---


The PAGE_SIZE symbol is defined in asm/page.h, So I think asm/page.h
should be included at the top of asm/thread-info.h.
Here is a additional patch:

--- a/arch/m32r/include/asm/thread_info.h
+++ b/arch/m32r/include/asm/thread_info.h
@@ -10,6 +10,7 @@

 #ifdef __KERNEL__

+#include <asm/page.h>
 #ifndef __ASSEMBLY__
 #include <asm/processor.h>
 #endif

Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>


Please update your patch if possible.

Thank you.

-- Takata

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/6] m32r: Define THREAD_SIZE only once.
  2009-09-07  5:52   ` Hirokazu Takata
@ 2009-09-07  6:41     ` Hirokazu Takata
  0 siblings, 0 replies; 10+ messages in thread
From: Hirokazu Takata @ 2009-09-07  6:41 UTC (permalink / raw)
  To: Tim Abbott; +Cc: Linux Kernel Mailing List, Sam Ravnborg, Hirokazu Takata

From: Hirokazu Takata <takata@linux-m32r.org>
Subject: Re: [PATCH 2/6] m32r: Define THREAD_SIZE only once.
Date: Mon, 07 Sep 2009 14:52:27 +0900
> 
> This patch causes build errors:
> 

Sorry. It was my mistake.
I forgot to apply your "[PATCH 3/6]".

Tim, you are correct.

From: Tim Abbott <tabbott@ksplice.com>
Subject: [PATCH 2/6] m32r: Define THREAD_SIZE only once.
Date: Sun, 06 Sep 2009 23:12:55 -0400
> 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 <tabbott@ksplice.com>
> Cc: Hirokazu Takata <takata@linux-m32r.org>
> ---
>  arch/m32r/include/asm/processor.h   |    2 --
>  arch/m32r/include/asm/thread_info.h |    6 ++----
>  2 files changed, 2 insertions(+), 6 deletions(-)
> 

Acked-by: Hirokazu Takata <takata@linux-m32r.org>

-- Takata

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 5/6] m32r: Move the spi_stack_top and spu_stack_top into .data section.
  2009-09-07  3:12 ` [PATCH 5/6] m32r: Move the spi_stack_top and spu_stack_top into .data section Tim Abbott
@ 2009-09-07 12:30   ` Hirokazu Takata
  2009-09-07 14:35     ` Tim Abbott
  0 siblings, 1 reply; 10+ messages in thread
From: Hirokazu Takata @ 2009-09-07 12:30 UTC (permalink / raw)
  To: Tim Abbott; +Cc: Linux Kernel Mailing List, Sam Ravnborg, Hirokazu Takata

From: Tim Abbott <tabbott@ksplice.com>
Subject: [PATCH 5/6] m32r: Move the spi_stack_top and spu_stack_top into .data section.
Date: Sun, 06 Sep 2009 23:12:58 -0400
> Since these get squashed into the .data output section by the m32r
> linker script, it seems likely that they don't need their own input
> sections.
> 
> I'd like an explicit confirmation from Hirokazu Takata that this is
> correct (in particular, that there isn't some hidden reason why there
> two structures need to be at the start of the .data output section).

There is no apparent reason.  We've placed them at the start of .data
section, because they are for initial stack region.

I think it would be better that we place them to .init.data section.
Any comment?

> This patch is preparation for cleaning up the m32r architecture to use
> the new macros in vmlinux.lds.h; if these sections are indeed not
> needed, then we can use the RW_DATA_SECTION macro for m32r and save a
> bunch of redundant code.
> 
> Signed-off-by: Tim Abbott <tabbott@ksplice.com>
> Cc: Hirokazu Takata <takata@linux-m32r.org>
> ---
>  arch/m32r/kernel/head.S        |    4 ++--
>  arch/m32r/kernel/vmlinux.lds.S |    2 --
>  2 files changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/m32r/kernel/head.S b/arch/m32r/kernel/head.S
> index 0a71944..fc4d769 100644
> --- a/arch/m32r/kernel/head.S
> +++ b/arch/m32r/kernel/head.S
> @@ -268,13 +268,13 @@ ENTRY(empty_zero_page)
>  /*------------------------------------------------------------------------
>   * Stack area
>   */
> -	.section .spi
> +	.section .data
>  	ALIGN
>  	.global spi_stack_top
>  	.zero	1024
>  spi_stack_top:
>  
> -	.section .spu
> +	.section .data
>  	ALIGN
>  	.global spu_stack_top
>  	.zero	1024
> diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S
> index eb3e425..1984b9f 100644
> --- a/arch/m32r/kernel/vmlinux.lds.S
> +++ b/arch/m32r/kernel/vmlinux.lds.S
> @@ -49,8 +49,6 @@ SECTIONS
>  
>    /* writeable */
>    .data : {			/* Data */
> -	*(.spu)
> -	*(.spi)
>  	DATA_DATA
>  	CONSTRUCTORS
>  	}
> -- 
> 1.6.3.3
> 

-- Takata

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 5/6] m32r: Move the spi_stack_top and spu_stack_top into .data section.
  2009-09-07 12:30   ` Hirokazu Takata
@ 2009-09-07 14:35     ` Tim Abbott
  0 siblings, 0 replies; 10+ messages in thread
From: Tim Abbott @ 2009-09-07 14:35 UTC (permalink / raw)
  To: Hirokazu Takata; +Cc: Linux Kernel Mailing List, Sam Ravnborg

On Mon, 7 Sep 2009, Hirokazu Takata wrote:

> From: Tim Abbott <tabbott@ksplice.com>
> Subject: [PATCH 5/6] m32r: Move the spi_stack_top and spu_stack_top into .data section.
> Date: Sun, 06 Sep 2009 23:12:58 -0400
> > Since these get squashed into the .data output section by the m32r
> > linker script, it seems likely that they don't need their own input
> > sections.
> > 
> > I'd like an explicit confirmation from Hirokazu Takata that this is
> > correct (in particular, that there isn't some hidden reason why there
> > two structures need to be at the start of the .data output section).
> 
> There is no apparent reason.  We've placed them at the start of .data
> section, because they are for initial stack region.
> 
> I think it would be better that we place them to .init.data section.
> Any comment?

Assuming that they aren't used after the initial boot process, that's 
probably the right choice.

	-Tim Abbott

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2009-09-07 14:36 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-07  3:12 [PATCH 1/6] m32r: make PAGE_SIZE available to assembly Tim Abbott
2009-09-07  3:12 ` [PATCH 2/6] m32r: Define THREAD_SIZE only once Tim Abbott
2009-09-07  5:52   ` Hirokazu Takata
2009-09-07  6:41     ` Hirokazu Takata
2009-09-07  3:12 ` [PATCH 3/6] m32r: Move GET_THREAD_INFO definition out of asm/thread_info.h Tim Abbott
2009-09-07  3:12 ` [PATCH 4/6] m32r: Remove unused .altinstructions and .exit.* code from linker script Tim Abbott
2009-09-07  3:12 ` [PATCH 5/6] m32r: Move the spi_stack_top and spu_stack_top into .data section Tim Abbott
2009-09-07 12:30   ` Hirokazu Takata
2009-09-07 14:35     ` Tim Abbott
2009-09-07  3:12 ` [PATCH 6/6] m32r: Cleanup linker script using new linker script macros Tim Abbott

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®