All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Linker script cleanup patches for m68k
@ 2009-09-16 16:44 Tim Abbott
  2009-09-16 16:44   ` Tim Abbott
  2009-09-16 16:44   ` Tim Abbott
  0 siblings, 2 replies; 19+ messages in thread
From: Tim Abbott @ 2009-09-16 16:44 UTC (permalink / raw)
  To: Geert Uytterhoeven, Roman Zippel
  Cc: linux-m68k, linux-kernel, Sam Ravnborg, Tim Abbott

This is an updated version of the patch series I sent on September 6
cleaning up the m68k architecture's linker scripts.  The only change is
that it is rebased on top of Linus's current master.

This cross-architecture linker script cleanup project is in
preparation for adding support for building the kernel with
-ffunction-sections -fdata-sections, which is a prerequisite for
Ksplice.

Tim Abbott (2):
  m68k: Make thread_info.h usable from assembly.
  m68k: Cleanup linker scripts using new linker script macros.

 arch/m68k/include/asm/thread_info_mm.h |    2 +
 arch/m68k/kernel/vmlinux-std.lds       |   53 ++++++-------------------------
 arch/m68k/kernel/vmlinux-sun3.lds      |   53 ++++++--------------------------
 3 files changed, 23 insertions(+), 85 deletions(-)


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

* [PATCH v2 1/2] m68k: Make thread_info.h usable from assembly.
  2009-09-16 16:44 [PATCH v2 0/2] Linker script cleanup patches for m68k Tim Abbott
@ 2009-09-16 16:44   ` Tim Abbott
  2009-09-16 16:44   ` Tim Abbott
  1 sibling, 0 replies; 19+ messages in thread
From: Tim Abbott @ 2009-09-16 16:44 UTC (permalink / raw)
  To: Geert Uytterhoeven, Roman Zippel
  Cc: linux-m68k, linux-kernel, Sam Ravnborg, Tim Abbott,
	Geert Uytterhoeven, Roman Zippel

Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: linux-m68k@lists.linux-m68k.org
Cc: Sam Ravnborg <sam@ravnborg.org>
---
 arch/m68k/include/asm/thread_info_mm.h |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/m68k/include/asm/thread_info_mm.h b/arch/m68k/include/asm/thread_info_mm.h
index b6da388..5f36cf1 100644
--- a/arch/m68k/include/asm/thread_info_mm.h
+++ b/arch/m68k/include/asm/thread_info_mm.h
@@ -8,6 +8,7 @@
 #include <asm/types.h>
 #include <asm/page.h>
 
+#ifndef __ASSEMBLY__
 struct thread_info {
 	struct task_struct	*task;		/* main task structure */
 	unsigned long		flags;
@@ -16,6 +17,7 @@ struct thread_info {
 	__u32 cpu; /* should always be 0 on m68k */
 	struct restart_block    restart_block;
 };
+#endif /* __ASSEMBLY__ */
 
 #define PREEMPT_ACTIVE		0x4000000
 
-- 
1.6.3.3


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

* [PATCH v2 1/2] m68k: Make thread_info.h usable from assembly.
@ 2009-09-16 16:44   ` Tim Abbott
  0 siblings, 0 replies; 19+ messages in thread
From: Tim Abbott @ 2009-09-16 16:44 UTC (permalink / raw)
  Cc: linux-m68k, linux-kernel, Sam Ravnborg, Tim Abbott,
	Geert Uytterhoeven, Roman Zippel

Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: linux-m68k@lists.linux-m68k.org
Cc: Sam Ravnborg <sam@ravnborg.org>
---
 arch/m68k/include/asm/thread_info_mm.h |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/m68k/include/asm/thread_info_mm.h b/arch/m68k/include/asm/thread_info_mm.h
index b6da388..5f36cf1 100644
--- a/arch/m68k/include/asm/thread_info_mm.h
+++ b/arch/m68k/include/asm/thread_info_mm.h
@@ -8,6 +8,7 @@
 #include <asm/types.h>
 #include <asm/page.h>
 
+#ifndef __ASSEMBLY__
 struct thread_info {
 	struct task_struct	*task;		/* main task structure */
 	unsigned long		flags;
@@ -16,6 +17,7 @@ struct thread_info {
 	__u32 cpu; /* should always be 0 on m68k */
 	struct restart_block    restart_block;
 };
+#endif /* __ASSEMBLY__ */
 
 #define PREEMPT_ACTIVE		0x4000000
 
-- 
1.6.3.3


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

* [PATCH v2 2/2] m68k: Cleanup linker scripts using new linker script macros.
  2009-09-16 16:44 [PATCH v2 0/2] Linker script cleanup patches for m68k Tim Abbott
@ 2009-09-16 16:44   ` Tim Abbott
  2009-09-16 16:44   ` Tim Abbott
  1 sibling, 0 replies; 19+ messages in thread
From: Tim Abbott @ 2009-09-16 16:44 UTC (permalink / raw)
  To: Geert Uytterhoeven, Roman Zippel
  Cc: linux-m68k, linux-kernel, Sam Ravnborg, Tim Abbott,
	Geert Uytterhoeven, Roman Zippel

Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: linux-m68k@lists.linux-m68k.org
Cc: Sam Ravnborg <sam@ravnborg.org>
---
 arch/m68k/kernel/vmlinux-std.lds  |   53 +++++++-----------------------------
 arch/m68k/kernel/vmlinux-sun3.lds |   53 +++++++------------------------------
 2 files changed, 21 insertions(+), 85 deletions(-)

diff --git a/arch/m68k/kernel/vmlinux-std.lds b/arch/m68k/kernel/vmlinux-std.lds
index 47eac19..5927487 100644
--- a/arch/m68k/kernel/vmlinux-std.lds
+++ b/arch/m68k/kernel/vmlinux-std.lds
@@ -2,6 +2,7 @@
 
 #include <asm-generic/vmlinux.lds.h>
 #include <asm/page.h>
+#include <asm/thread_info.h>
 
 OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
 OUTPUT_ARCH(m68k)
@@ -22,73 +23,41 @@ SECTIONS
 
   _etext = .;			/* End of text section */
 
-  . = ALIGN(16);		/* Exception table */
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  EXCEPTION_TABLE(16)
 
   RODATA
 
-  .data : {			/* Data */
-	DATA_DATA
-	CONSTRUCTORS
-	}
+  RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE)
 
-  . = ALIGN(16);
-  .data.cacheline_aligned : { *(.data.cacheline_aligned) }
-
-  .bss : { *(.bss) }		/* BSS */
+  BSS_SECTION(0, 0, 0)
 
   _edata = .;			/* End of data section */
 
   /* will be freed after init */
   . = ALIGN(PAGE_SIZE);		/* Init code and data */
   __init_begin = .;
-  .init.text : {
-	_sinittext = .;
-	INIT_TEXT
-	_einittext = .;
-  } :data
+  INIT_TEXT_SECTION(PAGE_SIZE) :data
+  INIT_DATA_SECTION(16)
   .init.data : { INIT_DATA }
-  . = ALIGN(16);
-  __setup_start = .;
-  .init.setup : { *(.init.setup) }
-  __setup_end = .;
-  __initcall_start = .;
+  .init.setup : { INIT_SETUP(16) }
   .initcall.init : {
-	INITCALLS
+	INIT_CALLS
   }
-  __initcall_end = .;
-  __con_initcall_start = .;
-  .con_initcall.init : { *(.con_initcall.init) }
-  __con_initcall_end = .;
+  .con_initcall.init : { CON_INITCALL }
   .m68k_fixup : {
 	__start_fixup = .;
 	*(.m68k_fixup)
 	__stop_fixup = .;
   }
   SECURITY_INIT
-#ifdef CONFIG_BLK_DEV_INITRD
-  . = ALIGN(8192);
-  __initramfs_start = .;
-  .init.ramfs : { *(.init.ramfs) }
-  __initramfs_end = .;
-#endif
+  .init.ramfs : { INIT_RAM_FS }
   NOTES
   . = ALIGN(8192);
   __init_end = .;
 
-  .data.init_task : { *(.data.init_task) }	/* The initial task and kernel stack */
-
   _end = . ;
 
-  /* Stabs debugging sections.  */
-  .stab 0 : { *(.stab) }
-  .stabstr 0 : { *(.stabstr) }
-  .stab.excl 0 : { *(.stab.excl) }
-  .stab.exclstr 0 : { *(.stab.exclstr) }
-  .stab.index 0 : { *(.stab.index) }
-  .stab.indexstr 0 : { *(.stab.indexstr) }
+  STABS_DEBUG
   .comment 0 : { *(.comment) }
 
   /* Sections to be discarded */
diff --git a/arch/m68k/kernel/vmlinux-sun3.lds b/arch/m68k/kernel/vmlinux-sun3.lds
index 03efaf0..607d214 100644
--- a/arch/m68k/kernel/vmlinux-sun3.lds
+++ b/arch/m68k/kernel/vmlinux-sun3.lds
@@ -2,6 +2,7 @@
 
 #include <asm-generic/vmlinux.lds.h>
 #include <asm/page.h>
+#include <asm/thread_info.h>
 
 OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
 OUTPUT_ARCH(m68k)
@@ -23,14 +24,8 @@ SECTIONS
 
   _etext = .;			/* End of text section */
 
-  .data : {			/* Data */
-	DATA_DATA
-	CONSTRUCTORS
-	. = ALIGN(16);		/* Exception table */
-	__start___ex_table = .;
-	*(__ex_table)
-	__stop___ex_table = .;
-	} :data
+  EXCEPTION_TABLE(16)
+  RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE) :data
   /* End of data goes *here* so that freeing init code works properly. */
   _edata = .;
   NOTES
@@ -38,56 +33,28 @@ SECTIONS
   /* will be freed after init */
   . = ALIGN(PAGE_SIZE);	/* Init code and data */
 __init_begin = .;
-	.init.text : {
-		_sinittext = .;
-		INIT_TEXT
-		_einittext = .;
-	}
+	INIT_TEXT_SECTION(PAGE_SIZE)
 	.init.data : { INIT_DATA }
-	. = ALIGN(16);
-	__setup_start = .;
-	.init.setup : { *(.init.setup) }
-	__setup_end = .;
-	__initcall_start = .;
+	.init.setup : { INIT_SETUP(16) }
 	.initcall.init : {
-		INITCALLS
+		INIT_CALLS
 	}
-	__initcall_end = .;
-	__con_initcall_start = .;
-	.con_initcall.init : { *(.con_initcall.init) }
-	__con_initcall_end = .;
+	.con_initcall.init : { CON_INITCALL }
 	.m68k_fixup : {
 		__start_fixup = .;
 		*(.m68k_fixup)
 		__stop_fixup = .;
 	}
 	SECURITY_INIT
-#ifdef CONFIG_BLK_DEV_INITRD
-	. = ALIGN(PAGE_SIZE);
-	__initramfs_start = .;
-	.init.ramfs : { *(.init.ramfs) }
-	__initramfs_end = .;
-#endif
+	.init.ramfs : { INIT_RAM_FS }
 	. = ALIGN(PAGE_SIZE);
 	__init_end = .;
-	.data.init.task : { *(.data.init_task) }
-
 
-  .bss : { *(.bss) }		/* BSS */
+  BSS_SECTION(0, 0, 0)
 
   _end = . ;
 
-  .crap : {
-	/* Stabs debugging sections.  */
-	*(.stab)
-	*(.stabstr)
-	*(.stab.excl)
-	*(.stab.exclstr)
-	*(.stab.index)
-	*(.stab.indexstr)
-	*(.comment)
-	*(.note)
-  }
+  STABS_DEBUG
 
   /* Sections to be discarded */
   DISCARDS
-- 
1.6.3.3


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

* [PATCH v2 2/2] m68k: Cleanup linker scripts using new linker script macros.
@ 2009-09-16 16:44   ` Tim Abbott
  0 siblings, 0 replies; 19+ messages in thread
From: Tim Abbott @ 2009-09-16 16:44 UTC (permalink / raw)
  Cc: linux-m68k, linux-kernel, Sam Ravnborg, Tim Abbott,
	Geert Uytterhoeven, Roman Zippel

Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: linux-m68k@lists.linux-m68k.org
Cc: Sam Ravnborg <sam@ravnborg.org>
---
 arch/m68k/kernel/vmlinux-std.lds  |   53 +++++++-----------------------------
 arch/m68k/kernel/vmlinux-sun3.lds |   53 +++++++------------------------------
 2 files changed, 21 insertions(+), 85 deletions(-)

diff --git a/arch/m68k/kernel/vmlinux-std.lds b/arch/m68k/kernel/vmlinux-std.lds
index 47eac19..5927487 100644
--- a/arch/m68k/kernel/vmlinux-std.lds
+++ b/arch/m68k/kernel/vmlinux-std.lds
@@ -2,6 +2,7 @@
 
 #include <asm-generic/vmlinux.lds.h>
 #include <asm/page.h>
+#include <asm/thread_info.h>
 
 OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
 OUTPUT_ARCH(m68k)
@@ -22,73 +23,41 @@ SECTIONS
 
   _etext = .;			/* End of text section */
 
-  . = ALIGN(16);		/* Exception table */
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  EXCEPTION_TABLE(16)
 
   RODATA
 
-  .data : {			/* Data */
-	DATA_DATA
-	CONSTRUCTORS
-	}
+  RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE)
 
-  . = ALIGN(16);
-  .data.cacheline_aligned : { *(.data.cacheline_aligned) }
-
-  .bss : { *(.bss) }		/* BSS */
+  BSS_SECTION(0, 0, 0)
 
   _edata = .;			/* End of data section */
 
   /* will be freed after init */
   . = ALIGN(PAGE_SIZE);		/* Init code and data */
   __init_begin = .;
-  .init.text : {
-	_sinittext = .;
-	INIT_TEXT
-	_einittext = .;
-  } :data
+  INIT_TEXT_SECTION(PAGE_SIZE) :data
+  INIT_DATA_SECTION(16)
   .init.data : { INIT_DATA }
-  . = ALIGN(16);
-  __setup_start = .;
-  .init.setup : { *(.init.setup) }
-  __setup_end = .;
-  __initcall_start = .;
+  .init.setup : { INIT_SETUP(16) }
   .initcall.init : {
-	INITCALLS
+	INIT_CALLS
   }
-  __initcall_end = .;
-  __con_initcall_start = .;
-  .con_initcall.init : { *(.con_initcall.init) }
-  __con_initcall_end = .;
+  .con_initcall.init : { CON_INITCALL }
   .m68k_fixup : {
 	__start_fixup = .;
 	*(.m68k_fixup)
 	__stop_fixup = .;
   }
   SECURITY_INIT
-#ifdef CONFIG_BLK_DEV_INITRD
-  . = ALIGN(8192);
-  __initramfs_start = .;
-  .init.ramfs : { *(.init.ramfs) }
-  __initramfs_end = .;
-#endif
+  .init.ramfs : { INIT_RAM_FS }
   NOTES
   . = ALIGN(8192);
   __init_end = .;
 
-  .data.init_task : { *(.data.init_task) }	/* The initial task and kernel stack */
-
   _end = . ;
 
-  /* Stabs debugging sections.  */
-  .stab 0 : { *(.stab) }
-  .stabstr 0 : { *(.stabstr) }
-  .stab.excl 0 : { *(.stab.excl) }
-  .stab.exclstr 0 : { *(.stab.exclstr) }
-  .stab.index 0 : { *(.stab.index) }
-  .stab.indexstr 0 : { *(.stab.indexstr) }
+  STABS_DEBUG
   .comment 0 : { *(.comment) }
 
   /* Sections to be discarded */
diff --git a/arch/m68k/kernel/vmlinux-sun3.lds b/arch/m68k/kernel/vmlinux-sun3.lds
index 03efaf0..607d214 100644
--- a/arch/m68k/kernel/vmlinux-sun3.lds
+++ b/arch/m68k/kernel/vmlinux-sun3.lds
@@ -2,6 +2,7 @@
 
 #include <asm-generic/vmlinux.lds.h>
 #include <asm/page.h>
+#include <asm/thread_info.h>
 
 OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
 OUTPUT_ARCH(m68k)
@@ -23,14 +24,8 @@ SECTIONS
 
   _etext = .;			/* End of text section */
 
-  .data : {			/* Data */
-	DATA_DATA
-	CONSTRUCTORS
-	. = ALIGN(16);		/* Exception table */
-	__start___ex_table = .;
-	*(__ex_table)
-	__stop___ex_table = .;
-	} :data
+  EXCEPTION_TABLE(16)
+  RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE) :data
   /* End of data goes *here* so that freeing init code works properly. */
   _edata = .;
   NOTES
@@ -38,56 +33,28 @@ SECTIONS
   /* will be freed after init */
   . = ALIGN(PAGE_SIZE);	/* Init code and data */
 __init_begin = .;
-	.init.text : {
-		_sinittext = .;
-		INIT_TEXT
-		_einittext = .;
-	}
+	INIT_TEXT_SECTION(PAGE_SIZE)
 	.init.data : { INIT_DATA }
-	. = ALIGN(16);
-	__setup_start = .;
-	.init.setup : { *(.init.setup) }
-	__setup_end = .;
-	__initcall_start = .;
+	.init.setup : { INIT_SETUP(16) }
 	.initcall.init : {
-		INITCALLS
+		INIT_CALLS
 	}
-	__initcall_end = .;
-	__con_initcall_start = .;
-	.con_initcall.init : { *(.con_initcall.init) }
-	__con_initcall_end = .;
+	.con_initcall.init : { CON_INITCALL }
 	.m68k_fixup : {
 		__start_fixup = .;
 		*(.m68k_fixup)
 		__stop_fixup = .;
 	}
 	SECURITY_INIT
-#ifdef CONFIG_BLK_DEV_INITRD
-	. = ALIGN(PAGE_SIZE);
-	__initramfs_start = .;
-	.init.ramfs : { *(.init.ramfs) }
-	__initramfs_end = .;
-#endif
+	.init.ramfs : { INIT_RAM_FS }
 	. = ALIGN(PAGE_SIZE);
 	__init_end = .;
-	.data.init.task : { *(.data.init_task) }
-
 
-  .bss : { *(.bss) }		/* BSS */
+  BSS_SECTION(0, 0, 0)
 
   _end = . ;
 
-  .crap : {
-	/* Stabs debugging sections.  */
-	*(.stab)
-	*(.stabstr)
-	*(.stab.excl)
-	*(.stab.exclstr)
-	*(.stab.index)
-	*(.stab.indexstr)
-	*(.comment)
-	*(.note)
-  }
+  STABS_DEBUG
 
   /* Sections to be discarded */
   DISCARDS
-- 
1.6.3.3


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

* Re: [PATCH v2 1/2] m68k: Make thread_info.h usable from assembly.
  2009-09-16 16:44   ` Tim Abbott
@ 2009-09-27  9:55     ` Geert Uytterhoeven
  -1 siblings, 0 replies; 19+ messages in thread
From: Geert Uytterhoeven @ 2009-09-27  9:55 UTC (permalink / raw)
  To: Tim Abbott; +Cc: Roman Zippel, linux-m68k, linux-kernel, Sam Ravnborg

On Wed, Sep 16, 2009 at 18:44, Tim Abbott <tabbott@ksplice.com> wrote:
> Signed-off-by: Tim Abbott <tabbott@ksplice.com>
> Cc: Geert Uytterhoeven <geert@linux-m68k.org>
> Cc: Roman Zippel <zippel@linux-m68k.org>
> Cc: linux-m68k@lists.linux-m68k.org
> Cc: Sam Ravnborg <sam@ravnborg.org>
> ---
>  arch/m68k/include/asm/thread_info_mm.h |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/arch/m68k/include/asm/thread_info_mm.h b/arch/m68k/include/asm/thread_info_mm.h
> index b6da388..5f36cf1 100644
> --- a/arch/m68k/include/asm/thread_info_mm.h
> +++ b/arch/m68k/include/asm/thread_info_mm.h
> @@ -8,6 +8,7 @@
>  #include <asm/types.h>
>  #include <asm/page.h>
>
> +#ifndef __ASSEMBLY__
>  struct thread_info {
>        struct task_struct      *task;          /* main task structure */
>        unsigned long           flags;
> @@ -16,6 +17,7 @@ struct thread_info {
>        __u32 cpu; /* should always be 0 on m68k */
>        struct restart_block    restart_block;
>  };
> +#endif /* __ASSEMBLY__ */
>
>  #define PREEMPT_ACTIVE         0x4000000

This is not sufficient. <asm/thread_info_mm.h> pulls in <asm/current.h>,
which contains C only. So you also need:

--- a/arch/m68k/include/asm/thread_info_mm.h
+++ b/arch/m68k/include/asm/thread_info_mm.h
@@ -4,11 +4,12 @@
 #ifndef ASM_OFFSETS_C
 #include <asm/asm-offsets.h>
 #endif
-#include <asm/current.h>
 #include <asm/types.h>
 #include <asm/page.h>

 #ifndef __ASSEMBLY__
+#include <asm/current.h>
+
 struct thread_info {
 	struct task_struct	*task;		/* main task structure */
 	unsigned long		flags;


Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

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

* Re: [PATCH v2 1/2] m68k: Make thread_info.h usable from assembly.
@ 2009-09-27  9:55     ` Geert Uytterhoeven
  0 siblings, 0 replies; 19+ messages in thread
From: Geert Uytterhoeven @ 2009-09-27  9:55 UTC (permalink / raw)
  To: Tim Abbott; +Cc: Roman Zippel, linux-m68k, linux-kernel, Sam Ravnborg

On Wed, Sep 16, 2009 at 18:44, Tim Abbott <tabbott@ksplice.com> wrote:
> Signed-off-by: Tim Abbott <tabbott@ksplice.com>
> Cc: Geert Uytterhoeven <geert@linux-m68k.org>
> Cc: Roman Zippel <zippel@linux-m68k.org>
> Cc: linux-m68k@lists.linux-m68k.org
> Cc: Sam Ravnborg <sam@ravnborg.org>
> ---
>  arch/m68k/include/asm/thread_info_mm.h |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/arch/m68k/include/asm/thread_info_mm.h b/arch/m68k/include/asm/thread_info_mm.h
> index b6da388..5f36cf1 100644
> --- a/arch/m68k/include/asm/thread_info_mm.h
> +++ b/arch/m68k/include/asm/thread_info_mm.h
> @@ -8,6 +8,7 @@
>  #include <asm/types.h>
>  #include <asm/page.h>
>
> +#ifndef __ASSEMBLY__
>  struct thread_info {
>        struct task_struct      *task;          /* main task structure */
>        unsigned long           flags;
> @@ -16,6 +17,7 @@ struct thread_info {
>        __u32 cpu; /* should always be 0 on m68k */
>        struct restart_block    restart_block;
>  };
> +#endif /* __ASSEMBLY__ */
>
>  #define PREEMPT_ACTIVE         0x4000000

This is not sufficient. <asm/thread_info_mm.h> pulls in <asm/current.h>,
which contains C only. So you also need:

--- a/arch/m68k/include/asm/thread_info_mm.h
+++ b/arch/m68k/include/asm/thread_info_mm.h
@@ -4,11 +4,12 @@
 #ifndef ASM_OFFSETS_C
 #include <asm/asm-offsets.h>
 #endif
-#include <asm/current.h>
 #include <asm/types.h>
 #include <asm/page.h>

 #ifndef __ASSEMBLY__
+#include <asm/current.h>
+
 struct thread_info {
 	struct task_struct	*task;		/* main task structure */
 	unsigned long		flags;


Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH v2 2/2] m68k: Cleanup linker scripts using new linker  script macros.
  2009-09-16 16:44   ` Tim Abbott
@ 2009-09-27  9:58     ` Geert Uytterhoeven
  -1 siblings, 0 replies; 19+ messages in thread
From: Geert Uytterhoeven @ 2009-09-27  9:58 UTC (permalink / raw)
  To: Tim Abbott; +Cc: Roman Zippel, linux-m68k, linux-kernel, Sam Ravnborg

On Wed, Sep 16, 2009 at 18:44, Tim Abbott <tabbott@ksplice.com> wrote:
> Signed-off-by: Tim Abbott <tabbott@ksplice.com>
> Cc: Geert Uytterhoeven <geert@linux-m68k.org>
> Cc: Roman Zippel <zippel@linux-m68k.org>
> Cc: linux-m68k@lists.linux-m68k.org
> Cc: Sam Ravnborg <sam@ravnborg.org>

This patch must do something wrong, as it now fails to boot on ARAnyM:

| CPU: Double bus fault detected !
| CPU: Halting

Haven't investigated why yet, though...

> ---
>  arch/m68k/kernel/vmlinux-std.lds  |   53 +++++++-----------------------------
>  arch/m68k/kernel/vmlinux-sun3.lds |   53 +++++++------------------------------
>  2 files changed, 21 insertions(+), 85 deletions(-)
>
> diff --git a/arch/m68k/kernel/vmlinux-std.lds b/arch/m68k/kernel/vmlinux-std.lds
> index 47eac19..5927487 100644
> --- a/arch/m68k/kernel/vmlinux-std.lds
> +++ b/arch/m68k/kernel/vmlinux-std.lds
> @@ -2,6 +2,7 @@
>
>  #include <asm-generic/vmlinux.lds.h>
>  #include <asm/page.h>
> +#include <asm/thread_info.h>
>
>  OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
>  OUTPUT_ARCH(m68k)
> @@ -22,73 +23,41 @@ SECTIONS
>
>   _etext = .;                  /* End of text section */
>
> -  . = ALIGN(16);               /* Exception table */
> -  __start___ex_table = .;
> -  __ex_table : { *(__ex_table) }
> -  __stop___ex_table = .;
> +  EXCEPTION_TABLE(16)
>
>   RODATA
>
> -  .data : {                    /* Data */
> -       DATA_DATA
> -       CONSTRUCTORS
> -       }
> +  RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE)
>
> -  . = ALIGN(16);
> -  .data.cacheline_aligned : { *(.data.cacheline_aligned) }
> -
> -  .bss : { *(.bss) }           /* BSS */
> +  BSS_SECTION(0, 0, 0)
>
>   _edata = .;                  /* End of data section */
>
>   /* will be freed after init */
>   . = ALIGN(PAGE_SIZE);                /* Init code and data */
>   __init_begin = .;
> -  .init.text : {
> -       _sinittext = .;
> -       INIT_TEXT
> -       _einittext = .;
> -  } :data
> +  INIT_TEXT_SECTION(PAGE_SIZE) :data
> +  INIT_DATA_SECTION(16)
>   .init.data : { INIT_DATA }
> -  . = ALIGN(16);
> -  __setup_start = .;
> -  .init.setup : { *(.init.setup) }
> -  __setup_end = .;
> -  __initcall_start = .;
> +  .init.setup : { INIT_SETUP(16) }
>   .initcall.init : {
> -       INITCALLS
> +       INIT_CALLS
>   }
> -  __initcall_end = .;
> -  __con_initcall_start = .;
> -  .con_initcall.init : { *(.con_initcall.init) }
> -  __con_initcall_end = .;
> +  .con_initcall.init : { CON_INITCALL }
>   .m68k_fixup : {
>        __start_fixup = .;
>        *(.m68k_fixup)
>        __stop_fixup = .;
>   }
>   SECURITY_INIT
> -#ifdef CONFIG_BLK_DEV_INITRD
> -  . = ALIGN(8192);
> -  __initramfs_start = .;
> -  .init.ramfs : { *(.init.ramfs) }
> -  __initramfs_end = .;
> -#endif
> +  .init.ramfs : { INIT_RAM_FS }
>   NOTES
>   . = ALIGN(8192);
>   __init_end = .;
>
> -  .data.init_task : { *(.data.init_task) }     /* The initial task and kernel stack */
> -
>   _end = . ;
>
> -  /* Stabs debugging sections.  */
> -  .stab 0 : { *(.stab) }
> -  .stabstr 0 : { *(.stabstr) }
> -  .stab.excl 0 : { *(.stab.excl) }
> -  .stab.exclstr 0 : { *(.stab.exclstr) }
> -  .stab.index 0 : { *(.stab.index) }
> -  .stab.indexstr 0 : { *(.stab.indexstr) }
> +  STABS_DEBUG
>   .comment 0 : { *(.comment) }
>
>   /* Sections to be discarded */
> diff --git a/arch/m68k/kernel/vmlinux-sun3.lds b/arch/m68k/kernel/vmlinux-sun3.lds
> index 03efaf0..607d214 100644
> --- a/arch/m68k/kernel/vmlinux-sun3.lds
> +++ b/arch/m68k/kernel/vmlinux-sun3.lds
> @@ -2,6 +2,7 @@
>
>  #include <asm-generic/vmlinux.lds.h>
>  #include <asm/page.h>
> +#include <asm/thread_info.h>
>
>  OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
>  OUTPUT_ARCH(m68k)
> @@ -23,14 +24,8 @@ SECTIONS
>
>   _etext = .;                  /* End of text section */
>
> -  .data : {                    /* Data */
> -       DATA_DATA
> -       CONSTRUCTORS
> -       . = ALIGN(16);          /* Exception table */
> -       __start___ex_table = .;
> -       *(__ex_table)
> -       __stop___ex_table = .;
> -       } :data
> +  EXCEPTION_TABLE(16)
> +  RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE) :data
>   /* End of data goes *here* so that freeing init code works properly. */
>   _edata = .;
>   NOTES
> @@ -38,56 +33,28 @@ SECTIONS
>   /* will be freed after init */
>   . = ALIGN(PAGE_SIZE);        /* Init code and data */
>  __init_begin = .;
> -       .init.text : {
> -               _sinittext = .;
> -               INIT_TEXT
> -               _einittext = .;
> -       }
> +       INIT_TEXT_SECTION(PAGE_SIZE)
>        .init.data : { INIT_DATA }
> -       . = ALIGN(16);
> -       __setup_start = .;
> -       .init.setup : { *(.init.setup) }
> -       __setup_end = .;
> -       __initcall_start = .;
> +       .init.setup : { INIT_SETUP(16) }
>        .initcall.init : {
> -               INITCALLS
> +               INIT_CALLS
>        }
> -       __initcall_end = .;
> -       __con_initcall_start = .;
> -       .con_initcall.init : { *(.con_initcall.init) }
> -       __con_initcall_end = .;
> +       .con_initcall.init : { CON_INITCALL }
>        .m68k_fixup : {
>                __start_fixup = .;
>                *(.m68k_fixup)
>                __stop_fixup = .;
>        }
>        SECURITY_INIT
> -#ifdef CONFIG_BLK_DEV_INITRD
> -       . = ALIGN(PAGE_SIZE);
> -       __initramfs_start = .;
> -       .init.ramfs : { *(.init.ramfs) }
> -       __initramfs_end = .;
> -#endif
> +       .init.ramfs : { INIT_RAM_FS }
>        . = ALIGN(PAGE_SIZE);
>        __init_end = .;
> -       .data.init.task : { *(.data.init_task) }
> -
>
> -  .bss : { *(.bss) }           /* BSS */
> +  BSS_SECTION(0, 0, 0)
>
>   _end = . ;
>
> -  .crap : {
> -       /* Stabs debugging sections.  */
> -       *(.stab)
> -       *(.stabstr)
> -       *(.stab.excl)
> -       *(.stab.exclstr)
> -       *(.stab.index)
> -       *(.stab.indexstr)
> -       *(.comment)
> -       *(.note)
> -  }
> +  STABS_DEBUG
>
>   /* Sections to be discarded */
>   DISCARDS
> --
> 1.6.3.3
>
>



-- 
Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

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

* Re: [PATCH v2 2/2] m68k: Cleanup linker scripts using new linker script macros.
@ 2009-09-27  9:58     ` Geert Uytterhoeven
  0 siblings, 0 replies; 19+ messages in thread
From: Geert Uytterhoeven @ 2009-09-27  9:58 UTC (permalink / raw)
  To: Tim Abbott; +Cc: Roman Zippel, linux-m68k, linux-kernel, Sam Ravnborg

On Wed, Sep 16, 2009 at 18:44, Tim Abbott <tabbott@ksplice.com> wrote:
> Signed-off-by: Tim Abbott <tabbott@ksplice.com>
> Cc: Geert Uytterhoeven <geert@linux-m68k.org>
> Cc: Roman Zippel <zippel@linux-m68k.org>
> Cc: linux-m68k@lists.linux-m68k.org
> Cc: Sam Ravnborg <sam@ravnborg.org>

This patch must do something wrong, as it now fails to boot on ARAnyM:

| CPU: Double bus fault detected !
| CPU: Halting

Haven't investigated why yet, though...

> ---
>  arch/m68k/kernel/vmlinux-std.lds  |   53 +++++++-----------------------------
>  arch/m68k/kernel/vmlinux-sun3.lds |   53 +++++++------------------------------
>  2 files changed, 21 insertions(+), 85 deletions(-)
>
> diff --git a/arch/m68k/kernel/vmlinux-std.lds b/arch/m68k/kernel/vmlinux-std.lds
> index 47eac19..5927487 100644
> --- a/arch/m68k/kernel/vmlinux-std.lds
> +++ b/arch/m68k/kernel/vmlinux-std.lds
> @@ -2,6 +2,7 @@
>
>  #include <asm-generic/vmlinux.lds.h>
>  #include <asm/page.h>
> +#include <asm/thread_info.h>
>
>  OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
>  OUTPUT_ARCH(m68k)
> @@ -22,73 +23,41 @@ SECTIONS
>
>   _etext = .;                  /* End of text section */
>
> -  . = ALIGN(16);               /* Exception table */
> -  __start___ex_table = .;
> -  __ex_table : { *(__ex_table) }
> -  __stop___ex_table = .;
> +  EXCEPTION_TABLE(16)
>
>   RODATA
>
> -  .data : {                    /* Data */
> -       DATA_DATA
> -       CONSTRUCTORS
> -       }
> +  RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE)
>
> -  . = ALIGN(16);
> -  .data.cacheline_aligned : { *(.data.cacheline_aligned) }
> -
> -  .bss : { *(.bss) }           /* BSS */
> +  BSS_SECTION(0, 0, 0)
>
>   _edata = .;                  /* End of data section */
>
>   /* will be freed after init */
>   . = ALIGN(PAGE_SIZE);                /* Init code and data */
>   __init_begin = .;
> -  .init.text : {
> -       _sinittext = .;
> -       INIT_TEXT
> -       _einittext = .;
> -  } :data
> +  INIT_TEXT_SECTION(PAGE_SIZE) :data
> +  INIT_DATA_SECTION(16)
>   .init.data : { INIT_DATA }
> -  . = ALIGN(16);
> -  __setup_start = .;
> -  .init.setup : { *(.init.setup) }
> -  __setup_end = .;
> -  __initcall_start = .;
> +  .init.setup : { INIT_SETUP(16) }
>   .initcall.init : {
> -       INITCALLS
> +       INIT_CALLS
>   }
> -  __initcall_end = .;
> -  __con_initcall_start = .;
> -  .con_initcall.init : { *(.con_initcall.init) }
> -  __con_initcall_end = .;
> +  .con_initcall.init : { CON_INITCALL }
>   .m68k_fixup : {
>        __start_fixup = .;
>        *(.m68k_fixup)
>        __stop_fixup = .;
>   }
>   SECURITY_INIT
> -#ifdef CONFIG_BLK_DEV_INITRD
> -  . = ALIGN(8192);
> -  __initramfs_start = .;
> -  .init.ramfs : { *(.init.ramfs) }
> -  __initramfs_end = .;
> -#endif
> +  .init.ramfs : { INIT_RAM_FS }
>   NOTES
>   . = ALIGN(8192);
>   __init_end = .;
>
> -  .data.init_task : { *(.data.init_task) }     /* The initial task and kernel stack */
> -
>   _end = . ;
>
> -  /* Stabs debugging sections.  */
> -  .stab 0 : { *(.stab) }
> -  .stabstr 0 : { *(.stabstr) }
> -  .stab.excl 0 : { *(.stab.excl) }
> -  .stab.exclstr 0 : { *(.stab.exclstr) }
> -  .stab.index 0 : { *(.stab.index) }
> -  .stab.indexstr 0 : { *(.stab.indexstr) }
> +  STABS_DEBUG
>   .comment 0 : { *(.comment) }
>
>   /* Sections to be discarded */
> diff --git a/arch/m68k/kernel/vmlinux-sun3.lds b/arch/m68k/kernel/vmlinux-sun3.lds
> index 03efaf0..607d214 100644
> --- a/arch/m68k/kernel/vmlinux-sun3.lds
> +++ b/arch/m68k/kernel/vmlinux-sun3.lds
> @@ -2,6 +2,7 @@
>
>  #include <asm-generic/vmlinux.lds.h>
>  #include <asm/page.h>
> +#include <asm/thread_info.h>
>
>  OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
>  OUTPUT_ARCH(m68k)
> @@ -23,14 +24,8 @@ SECTIONS
>
>   _etext = .;                  /* End of text section */
>
> -  .data : {                    /* Data */
> -       DATA_DATA
> -       CONSTRUCTORS
> -       . = ALIGN(16);          /* Exception table */
> -       __start___ex_table = .;
> -       *(__ex_table)
> -       __stop___ex_table = .;
> -       } :data
> +  EXCEPTION_TABLE(16)
> +  RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE) :data
>   /* End of data goes *here* so that freeing init code works properly. */
>   _edata = .;
>   NOTES
> @@ -38,56 +33,28 @@ SECTIONS
>   /* will be freed after init */
>   . = ALIGN(PAGE_SIZE);        /* Init code and data */
>  __init_begin = .;
> -       .init.text : {
> -               _sinittext = .;
> -               INIT_TEXT
> -               _einittext = .;
> -       }
> +       INIT_TEXT_SECTION(PAGE_SIZE)
>        .init.data : { INIT_DATA }
> -       . = ALIGN(16);
> -       __setup_start = .;
> -       .init.setup : { *(.init.setup) }
> -       __setup_end = .;
> -       __initcall_start = .;
> +       .init.setup : { INIT_SETUP(16) }
>        .initcall.init : {
> -               INITCALLS
> +               INIT_CALLS
>        }
> -       __initcall_end = .;
> -       __con_initcall_start = .;
> -       .con_initcall.init : { *(.con_initcall.init) }
> -       __con_initcall_end = .;
> +       .con_initcall.init : { CON_INITCALL }
>        .m68k_fixup : {
>                __start_fixup = .;
>                *(.m68k_fixup)
>                __stop_fixup = .;
>        }
>        SECURITY_INIT
> -#ifdef CONFIG_BLK_DEV_INITRD
> -       . = ALIGN(PAGE_SIZE);
> -       __initramfs_start = .;
> -       .init.ramfs : { *(.init.ramfs) }
> -       __initramfs_end = .;
> -#endif
> +       .init.ramfs : { INIT_RAM_FS }
>        . = ALIGN(PAGE_SIZE);
>        __init_end = .;
> -       .data.init.task : { *(.data.init_task) }
> -
>
> -  .bss : { *(.bss) }           /* BSS */
> +  BSS_SECTION(0, 0, 0)
>
>   _end = . ;
>
> -  .crap : {
> -       /* Stabs debugging sections.  */
> -       *(.stab)
> -       *(.stabstr)
> -       *(.stab.excl)
> -       *(.stab.exclstr)
> -       *(.stab.index)
> -       *(.stab.indexstr)
> -       *(.comment)
> -       *(.note)
> -  }
> +  STABS_DEBUG
>
>   /* Sections to be discarded */
>   DISCARDS
> --
> 1.6.3.3
>
>



-- 
Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH v2 1/2] m68k: Make thread_info.h usable from assembly.
  2009-09-27  9:55     ` Geert Uytterhoeven
@ 2009-09-27 11:58       ` Sam Ravnborg
  -1 siblings, 0 replies; 19+ messages in thread
From: Sam Ravnborg @ 2009-09-27 11:58 UTC (permalink / raw)
  To: Geert Uytterhoeven; +Cc: Tim Abbott, Roman Zippel, linux-m68k, linux-kernel

On Sun, Sep 27, 2009 at 11:55:55AM +0200, Geert Uytterhoeven wrote:
> On Wed, Sep 16, 2009 at 18:44, Tim Abbott <tabbott@ksplice.com> wrote:
> > Signed-off-by: Tim Abbott <tabbott@ksplice.com>
> > Cc: Geert Uytterhoeven <geert@linux-m68k.org>
> > Cc: Roman Zippel <zippel@linux-m68k.org>
> > Cc: linux-m68k@lists.linux-m68k.org
> > Cc: Sam Ravnborg <sam@ravnborg.org>
> > ---
> >  arch/m68k/include/asm/thread_info_mm.h |    2 ++
> >  1 files changed, 2 insertions(+), 0 deletions(-)
> >
> > diff --git a/arch/m68k/include/asm/thread_info_mm.h b/arch/m68k/include/asm/thread_info_mm.h
> > index b6da388..5f36cf1 100644
> > --- a/arch/m68k/include/asm/thread_info_mm.h
> > +++ b/arch/m68k/include/asm/thread_info_mm.h
> > @@ -8,6 +8,7 @@
> >  #include <asm/types.h>
> >  #include <asm/page.h>
> >
> > +#ifndef __ASSEMBLY__
> >  struct thread_info {
> >        struct task_struct      *task;          /* main task structure */
> >        unsigned long           flags;
> > @@ -16,6 +17,7 @@ struct thread_info {
> >        __u32 cpu; /* should always be 0 on m68k */
> >        struct restart_block    restart_block;
> >  };
> > +#endif /* __ASSEMBLY__ */
> >
> >  #define PREEMPT_ACTIVE         0x4000000
> 
> This is not sufficient. <asm/thread_info_mm.h> pulls in <asm/current.h>,
> which contains C only. So you also need:
> 
> --- a/arch/m68k/include/asm/thread_info_mm.h
> +++ b/arch/m68k/include/asm/thread_info_mm.h
> @@ -4,11 +4,12 @@
>  #ifndef ASM_OFFSETS_C
>  #include <asm/asm-offsets.h>
>  #endif
> -#include <asm/current.h>
>  #include <asm/types.h>
>  #include <asm/page.h>
> 
>  #ifndef __ASSEMBLY__
> +#include <asm/current.h>
> +
>  struct thread_info {
>  	struct task_struct	*task;		/* main task structure */
>  	unsigned long		flags;


upstream m68k does not build for me so I could not test.
But I think the correct fix is to drop the include or current from thread_info.
No-one except m68k needs to include current.h in thread_info.h.

	Sam

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

* Re: [PATCH v2 1/2] m68k: Make thread_info.h usable from assembly.
@ 2009-09-27 11:58       ` Sam Ravnborg
  0 siblings, 0 replies; 19+ messages in thread
From: Sam Ravnborg @ 2009-09-27 11:58 UTC (permalink / raw)
  To: Geert Uytterhoeven; +Cc: Tim Abbott, Roman Zippel, linux-m68k, linux-kernel

On Sun, Sep 27, 2009 at 11:55:55AM +0200, Geert Uytterhoeven wrote:
> On Wed, Sep 16, 2009 at 18:44, Tim Abbott <tabbott@ksplice.com> wrote:
> > Signed-off-by: Tim Abbott <tabbott@ksplice.com>
> > Cc: Geert Uytterhoeven <geert@linux-m68k.org>
> > Cc: Roman Zippel <zippel@linux-m68k.org>
> > Cc: linux-m68k@lists.linux-m68k.org
> > Cc: Sam Ravnborg <sam@ravnborg.org>
> > ---
> >  arch/m68k/include/asm/thread_info_mm.h |    2 ++
> >  1 files changed, 2 insertions(+), 0 deletions(-)
> >
> > diff --git a/arch/m68k/include/asm/thread_info_mm.h b/arch/m68k/include/asm/thread_info_mm.h
> > index b6da388..5f36cf1 100644
> > --- a/arch/m68k/include/asm/thread_info_mm.h
> > +++ b/arch/m68k/include/asm/thread_info_mm.h
> > @@ -8,6 +8,7 @@
> >  #include <asm/types.h>
> >  #include <asm/page.h>
> >
> > +#ifndef __ASSEMBLY__
> >  struct thread_info {
> >        struct task_struct      *task;          /* main task structure */
> >        unsigned long           flags;
> > @@ -16,6 +17,7 @@ struct thread_info {
> >        __u32 cpu; /* should always be 0 on m68k */
> >        struct restart_block    restart_block;
> >  };
> > +#endif /* __ASSEMBLY__ */
> >
> >  #define PREEMPT_ACTIVE         0x4000000
> 
> This is not sufficient. <asm/thread_info_mm.h> pulls in <asm/current.h>,
> which contains C only. So you also need:
> 
> --- a/arch/m68k/include/asm/thread_info_mm.h
> +++ b/arch/m68k/include/asm/thread_info_mm.h
> @@ -4,11 +4,12 @@
>  #ifndef ASM_OFFSETS_C
>  #include <asm/asm-offsets.h>
>  #endif
> -#include <asm/current.h>
>  #include <asm/types.h>
>  #include <asm/page.h>
> 
>  #ifndef __ASSEMBLY__
> +#include <asm/current.h>
> +
>  struct thread_info {
>  	struct task_struct	*task;		/* main task structure */
>  	unsigned long		flags;


upstream m68k does not build for me so I could not test.
But I think the correct fix is to drop the include or current from thread_info.
No-one except m68k needs to include current.h in thread_info.h.

	Sam
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: [PATCH v2 2/2] m68k: Cleanup linker scripts using new linker  script macros.
  2009-09-27  9:58     ` Geert Uytterhoeven
  (?)
@ 2009-09-27 13:01     ` Andreas Schwab
  2009-09-27 17:57         ` Tim Abbott
  -1 siblings, 1 reply; 19+ messages in thread
From: Andreas Schwab @ 2009-09-27 13:01 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Tim Abbott, Roman Zippel, linux-m68k, linux-kernel, Sam Ravnborg

Geert Uytterhoeven <geert@linux-m68k.org> writes:

> On Wed, Sep 16, 2009 at 18:44, Tim Abbott <tabbott@ksplice.com> wrote:
>> Signed-off-by: Tim Abbott <tabbott@ksplice.com>
>> Cc: Geert Uytterhoeven <geert@linux-m68k.org>
>> Cc: Roman Zippel <zippel@linux-m68k.org>
>> Cc: linux-m68k@lists.linux-m68k.org
>> Cc: Sam Ravnborg <sam@ravnborg.org>
>
> This patch must do something wrong, as it now fails to boot on ARAnyM:
>
> | CPU: Double bus fault detected !
> | CPU: Halting
>
> Haven't investigated why yet, though...

The problem is that _end no longer matches the end of the load segment.
Previously, the .data.init_task section was the last allocated item in
the linker script, now the last item is an align.  This align does not
affect the memsize of the segment.  The startup code expects the boot
info to be placed at _end, but the boot loader puts it at the end of the
load segment, which is the best it can do.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

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

* Re: [PATCH v2 2/2] m68k: Cleanup linker scripts using new linker  script macros.
  2009-09-27 13:01     ` Andreas Schwab
@ 2009-09-27 17:57         ` Tim Abbott
  0 siblings, 0 replies; 19+ messages in thread
From: Tim Abbott @ 2009-09-27 17:57 UTC (permalink / raw)
  To: Andreas Schwab
  Cc: Geert Uytterhoeven, Roman Zippel, linux-m68k, linux-kernel, Sam Ravnborg

On Sun, 27 Sep 2009, Andreas Schwab wrote:

> Geert Uytterhoeven <geert@linux-m68k.org> writes:
> 
> > On Wed, Sep 16, 2009 at 18:44, Tim Abbott <tabbott@ksplice.com> wrote:
> >> Signed-off-by: Tim Abbott <tabbott@ksplice.com>
> >> Cc: Geert Uytterhoeven <geert@linux-m68k.org>
> >> Cc: Roman Zippel <zippel@linux-m68k.org>
> >> Cc: linux-m68k@lists.linux-m68k.org
> >> Cc: Sam Ravnborg <sam@ravnborg.org>
> >
> > This patch must do something wrong, as it now fails to boot on ARAnyM:
> >
> > | CPU: Double bus fault detected !
> > | CPU: Halting
> >
> > Haven't investigated why yet, though...
> 
> The problem is that _end no longer matches the end of the load segment.
> Previously, the .data.init_task section was the last allocated item in
> the linker script, now the last item is an align.  This align does not
> affect the memsize of the segment.  The startup code expects the boot
> info to be placed at _end, but the boot loader puts it at the end of the
> load segment, which is the best it can do.

Below is a new version of the second patch that attempts to address this 
by putting the ALIGN inside a section, so that _end is at the end of the 
load segment (I also did a bit more cleanup):

  .init_end : {
	/* This ALIGN be in a section so that _end is at the end of the
	   load segment. */
	. = ALIGN(PAGE_SIZE);
	__init_end = .;
  }
  
  _end = .;

	-Tim Abbott

m68k: Cleanup linker scripts using new linker script macros.

Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: linux-m68k@lists.linux-m68k.org
Cc: Sam Ravnborg <sam@ravnborg.org>
---
 arch/m68k/kernel/vmlinux-std.lds  |   61 ++++++++-----------------------------
 arch/m68k/kernel/vmlinux-sun3.lds |   54 ++++----------------------------
 2 files changed, 20 insertions(+), 95 deletions(-)

diff --git a/arch/m68k/kernel/vmlinux-std.lds b/arch/m68k/kernel/vmlinux-std.lds
index 47eac19..878be5f 100644
--- a/arch/m68k/kernel/vmlinux-std.lds
+++ b/arch/m68k/kernel/vmlinux-std.lds
@@ -2,6 +2,7 @@
 
 #include <asm-generic/vmlinux.lds.h>
 #include <asm/page.h>
+#include <asm/thread_info.h>
 
 OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
 OUTPUT_ARCH(m68k)
@@ -22,73 +23,37 @@ SECTIONS
 
   _etext = .;			/* End of text section */
 
-  . = ALIGN(16);		/* Exception table */
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  EXCEPTION_TABLE(16)
 
   RODATA
 
-  .data : {			/* Data */
-	DATA_DATA
-	CONSTRUCTORS
-	}
+  RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE)
 
-  . = ALIGN(16);
-  .data.cacheline_aligned : { *(.data.cacheline_aligned) }
-
-  .bss : { *(.bss) }		/* BSS */
+  BSS_SECTION(0, 0, 0)
 
   _edata = .;			/* End of data section */
 
   /* will be freed after init */
   . = ALIGN(PAGE_SIZE);		/* Init code and data */
   __init_begin = .;
-  .init.text : {
-	_sinittext = .;
-	INIT_TEXT
-	_einittext = .;
-  } :data
-  .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 = .;
+  INIT_TEXT_SECTION(PAGE_SIZE) :data
+  INIT_DATA_SECTION(16)
   .m68k_fixup : {
 	__start_fixup = .;
 	*(.m68k_fixup)
 	__stop_fixup = .;
   }
-  SECURITY_INIT
-#ifdef CONFIG_BLK_DEV_INITRD
-  . = ALIGN(8192);
-  __initramfs_start = .;
-  .init.ramfs : { *(.init.ramfs) }
-  __initramfs_end = .;
-#endif
   NOTES
-  . = ALIGN(8192);
-  __init_end = .;
-
-  .data.init_task : { *(.data.init_task) }	/* The initial task and kernel stack */
+  .init_end : {
+	/* This ALIGN be in a section so that _end is at the end of the
+	   load segment. */
+	. = ALIGN(PAGE_SIZE);
+	__init_end = .;
+  }
 
   _end = . ;
 
-  /* Stabs debugging sections.  */
-  .stab 0 : { *(.stab) }
-  .stabstr 0 : { *(.stabstr) }
-  .stab.excl 0 : { *(.stab.excl) }
-  .stab.exclstr 0 : { *(.stab.exclstr) }
-  .stab.index 0 : { *(.stab.index) }
-  .stab.indexstr 0 : { *(.stab.indexstr) }
+  STABS_DEBUG
   .comment 0 : { *(.comment) }
 
   /* Sections to be discarded */
diff --git a/arch/m68k/kernel/vmlinux-sun3.lds b/arch/m68k/kernel/vmlinux-sun3.lds
index 03efaf0..1ad6b7a 100644
--- a/arch/m68k/kernel/vmlinux-sun3.lds
+++ b/arch/m68k/kernel/vmlinux-sun3.lds
@@ -2,6 +2,7 @@
 
 #include <asm-generic/vmlinux.lds.h>
 #include <asm/page.h>
+#include <asm/thread_info.h>
 
 OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
 OUTPUT_ARCH(m68k)
@@ -23,14 +24,8 @@ SECTIONS
 
   _etext = .;			/* End of text section */
 
-  .data : {			/* Data */
-	DATA_DATA
-	CONSTRUCTORS
-	. = ALIGN(16);		/* Exception table */
-	__start___ex_table = .;
-	*(__ex_table)
-	__stop___ex_table = .;
-	} :data
+  EXCEPTION_TABLE(16) :data
+  RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE) :data
   /* End of data goes *here* so that freeing init code works properly. */
   _edata = .;
   NOTES
@@ -38,56 +33,21 @@ SECTIONS
   /* will be freed after init */
   . = 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 = .;
+	INIT_TEXT_SECTION(PAGE_SIZE)
+	INIT_DATA_SECTION(16)
 	.m68k_fixup : {
 		__start_fixup = .;
 		*(.m68k_fixup)
 		__stop_fixup = .;
 	}
-	SECURITY_INIT
-#ifdef CONFIG_BLK_DEV_INITRD
-	. = ALIGN(PAGE_SIZE);
-	__initramfs_start = .;
-	.init.ramfs : { *(.init.ramfs) }
-	__initramfs_end = .;
-#endif
 	. = ALIGN(PAGE_SIZE);
 	__init_end = .;
-	.data.init.task : { *(.data.init_task) }
-
 
-  .bss : { *(.bss) }		/* BSS */
+  BSS_SECTION(0, 0, 0)
 
   _end = . ;
 
-  .crap : {
-	/* Stabs debugging sections.  */
-	*(.stab)
-	*(.stabstr)
-	*(.stab.excl)
-	*(.stab.exclstr)
-	*(.stab.index)
-	*(.stab.indexstr)
-	*(.comment)
-	*(.note)
-  }
+  STABS_DEBUG
 
   /* Sections to be discarded */
   DISCARDS
-- 
1.6.3.3


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

* Re: [PATCH v2 2/2] m68k: Cleanup linker scripts using new linker script macros.
@ 2009-09-27 17:57         ` Tim Abbott
  0 siblings, 0 replies; 19+ messages in thread
From: Tim Abbott @ 2009-09-27 17:57 UTC (permalink / raw)
  To: Andreas Schwab
  Cc: Geert Uytterhoeven, Roman Zippel, linux-m68k, linux-kernel, Sam Ravnborg

On Sun, 27 Sep 2009, Andreas Schwab wrote:

> Geert Uytterhoeven <geert@linux-m68k.org> writes:
> 
> > On Wed, Sep 16, 2009 at 18:44, Tim Abbott <tabbott@ksplice.com> wrote:
> >> Signed-off-by: Tim Abbott <tabbott@ksplice.com>
> >> Cc: Geert Uytterhoeven <geert@linux-m68k.org>
> >> Cc: Roman Zippel <zippel@linux-m68k.org>
> >> Cc: linux-m68k@lists.linux-m68k.org
> >> Cc: Sam Ravnborg <sam@ravnborg.org>
> >
> > This patch must do something wrong, as it now fails to boot on ARAnyM:
> >
> > | CPU: Double bus fault detected !
> > | CPU: Halting
> >
> > Haven't investigated why yet, though...
> 
> The problem is that _end no longer matches the end of the load segment.
> Previously, the .data.init_task section was the last allocated item in
> the linker script, now the last item is an align.  This align does not
> affect the memsize of the segment.  The startup code expects the boot
> info to be placed at _end, but the boot loader puts it at the end of the
> load segment, which is the best it can do.

Below is a new version of the second patch that attempts to address this 
by putting the ALIGN inside a section, so that _end is at the end of the 
load segment (I also did a bit more cleanup):

  .init_end : {
	/* This ALIGN be in a section so that _end is at the end of the
	   load segment. */
	. = ALIGN(PAGE_SIZE);
	__init_end = .;
  }
  
  _end = .;

	-Tim Abbott

m68k: Cleanup linker scripts using new linker script macros.

Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: linux-m68k@lists.linux-m68k.org
Cc: Sam Ravnborg <sam@ravnborg.org>
---
 arch/m68k/kernel/vmlinux-std.lds  |   61 ++++++++-----------------------------
 arch/m68k/kernel/vmlinux-sun3.lds |   54 ++++----------------------------
 2 files changed, 20 insertions(+), 95 deletions(-)

diff --git a/arch/m68k/kernel/vmlinux-std.lds b/arch/m68k/kernel/vmlinux-std.lds
index 47eac19..878be5f 100644
--- a/arch/m68k/kernel/vmlinux-std.lds
+++ b/arch/m68k/kernel/vmlinux-std.lds
@@ -2,6 +2,7 @@
 
 #include <asm-generic/vmlinux.lds.h>
 #include <asm/page.h>
+#include <asm/thread_info.h>
 
 OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
 OUTPUT_ARCH(m68k)
@@ -22,73 +23,37 @@ SECTIONS
 
   _etext = .;			/* End of text section */
 
-  . = ALIGN(16);		/* Exception table */
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  EXCEPTION_TABLE(16)
 
   RODATA
 
-  .data : {			/* Data */
-	DATA_DATA
-	CONSTRUCTORS
-	}
+  RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE)
 
-  . = ALIGN(16);
-  .data.cacheline_aligned : { *(.data.cacheline_aligned) }
-
-  .bss : { *(.bss) }		/* BSS */
+  BSS_SECTION(0, 0, 0)
 
   _edata = .;			/* End of data section */
 
   /* will be freed after init */
   . = ALIGN(PAGE_SIZE);		/* Init code and data */
   __init_begin = .;
-  .init.text : {
-	_sinittext = .;
-	INIT_TEXT
-	_einittext = .;
-  } :data
-  .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 = .;
+  INIT_TEXT_SECTION(PAGE_SIZE) :data
+  INIT_DATA_SECTION(16)
   .m68k_fixup : {
 	__start_fixup = .;
 	*(.m68k_fixup)
 	__stop_fixup = .;
   }
-  SECURITY_INIT
-#ifdef CONFIG_BLK_DEV_INITRD
-  . = ALIGN(8192);
-  __initramfs_start = .;
-  .init.ramfs : { *(.init.ramfs) }
-  __initramfs_end = .;
-#endif
   NOTES
-  . = ALIGN(8192);
-  __init_end = .;
-
-  .data.init_task : { *(.data.init_task) }	/* The initial task and kernel stack */
+  .init_end : {
+	/* This ALIGN be in a section so that _end is at the end of the
+	   load segment. */
+	. = ALIGN(PAGE_SIZE);
+	__init_end = .;
+  }
 
   _end = . ;
 
-  /* Stabs debugging sections.  */
-  .stab 0 : { *(.stab) }
-  .stabstr 0 : { *(.stabstr) }
-  .stab.excl 0 : { *(.stab.excl) }
-  .stab.exclstr 0 : { *(.stab.exclstr) }
-  .stab.index 0 : { *(.stab.index) }
-  .stab.indexstr 0 : { *(.stab.indexstr) }
+  STABS_DEBUG
   .comment 0 : { *(.comment) }
 
   /* Sections to be discarded */
diff --git a/arch/m68k/kernel/vmlinux-sun3.lds b/arch/m68k/kernel/vmlinux-sun3.lds
index 03efaf0..1ad6b7a 100644
--- a/arch/m68k/kernel/vmlinux-sun3.lds
+++ b/arch/m68k/kernel/vmlinux-sun3.lds
@@ -2,6 +2,7 @@
 
 #include <asm-generic/vmlinux.lds.h>
 #include <asm/page.h>
+#include <asm/thread_info.h>
 
 OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
 OUTPUT_ARCH(m68k)
@@ -23,14 +24,8 @@ SECTIONS
 
   _etext = .;			/* End of text section */
 
-  .data : {			/* Data */
-	DATA_DATA
-	CONSTRUCTORS
-	. = ALIGN(16);		/* Exception table */
-	__start___ex_table = .;
-	*(__ex_table)
-	__stop___ex_table = .;
-	} :data
+  EXCEPTION_TABLE(16) :data
+  RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE) :data
   /* End of data goes *here* so that freeing init code works properly. */
   _edata = .;
   NOTES
@@ -38,56 +33,21 @@ SECTIONS
   /* will be freed after init */
   . = 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 = .;
+	INIT_TEXT_SECTION(PAGE_SIZE)
+	INIT_DATA_SECTION(16)
 	.m68k_fixup : {
 		__start_fixup = .;
 		*(.m68k_fixup)
 		__stop_fixup = .;
 	}
-	SECURITY_INIT
-#ifdef CONFIG_BLK_DEV_INITRD
-	. = ALIGN(PAGE_SIZE);
-	__initramfs_start = .;
-	.init.ramfs : { *(.init.ramfs) }
-	__initramfs_end = .;
-#endif
 	. = ALIGN(PAGE_SIZE);
 	__init_end = .;
-	.data.init.task : { *(.data.init_task) }
-
 
-  .bss : { *(.bss) }		/* BSS */
+  BSS_SECTION(0, 0, 0)
 
   _end = . ;
 
-  .crap : {
-	/* Stabs debugging sections.  */
-	*(.stab)
-	*(.stabstr)
-	*(.stab.excl)
-	*(.stab.exclstr)
-	*(.stab.index)
-	*(.stab.indexstr)
-	*(.comment)
-	*(.note)
-  }
+  STABS_DEBUG
 
   /* Sections to be discarded */
   DISCARDS
-- 
1.6.3.3


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

* Re: [PATCH v2 2/2] m68k: Cleanup linker scripts using new linker  script macros.
  2009-09-27 17:57         ` Tim Abbott
  (?)
@ 2009-09-29 17:12         ` Andreas Schwab
  2009-09-30  6:53             ` Sam Ravnborg
  -1 siblings, 1 reply; 19+ messages in thread
From: Andreas Schwab @ 2009-09-29 17:12 UTC (permalink / raw)
  To: Tim Abbott
  Cc: Geert Uytterhoeven, Roman Zippel, linux-m68k, linux-kernel, Sam Ravnborg

Tim Abbott <tabbott@ksplice.com> writes:

> Below is a new version of the second patch that attempts to address this 
> by putting the ALIGN inside a section, so that _end is at the end of the 
> load segment (I also did a bit more cleanup):
>
>   .init_end : {
> 	/* This ALIGN be in a section so that _end is at the end of the
> 	   load segment. */
> 	. = ALIGN(PAGE_SIZE);
> 	__init_end = .;
>   }
>   
>   _end = .;

This works fine.

Andreas.

-- 
Andreas Schwab, schwab@redhat.com
GPG Key fingerprint = D4E8 DBE3 3813 BB5D FA84  5EC7 45C6 250E 6F00 984E
"And now for something completely different."

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

* Re: [PATCH v2 2/2] m68k: Cleanup linker scripts using new linker script macros.
  2009-09-29 17:12         ` Andreas Schwab
@ 2009-09-30  6:53             ` Sam Ravnborg
  0 siblings, 0 replies; 19+ messages in thread
From: Sam Ravnborg @ 2009-09-30  6:53 UTC (permalink / raw)
  To: Andreas Schwab, Geert Uytterhoeven
  Cc: Tim Abbott, Geert Uytterhoeven, Roman Zippel, linux-m68k, linux-kernel

On Tue, Sep 29, 2009 at 07:12:56PM +0200, Andreas Schwab wrote:
> Tim Abbott <tabbott@ksplice.com> writes:
> 
> > Below is a new version of the second patch that attempts to address this 
> > by putting the ALIGN inside a section, so that _end is at the end of the 
> > load segment (I also did a bit more cleanup):
> >
> >   .init_end : {
> > 	/* This ALIGN be in a section so that _end is at the end of the
> > 	   load segment. */
> > 	. = ALIGN(PAGE_SIZE);
> > 	__init_end = .;
> >   }
> >   
> >   _end = .;
> 
> This works fine.

Thanks for testing Andreas.

Geert - I assume you take the corrected version and push to Linus?

	Sam

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

* Re: [PATCH v2 2/2] m68k: Cleanup linker scripts using new linker script macros.
@ 2009-09-30  6:53             ` Sam Ravnborg
  0 siblings, 0 replies; 19+ messages in thread
From: Sam Ravnborg @ 2009-09-30  6:53 UTC (permalink / raw)
  To: Andreas Schwab
  Cc: Tim Abbott, Geert Uytterhoeven, Roman Zippel, linux-m68k, linux-kernel

On Tue, Sep 29, 2009 at 07:12:56PM +0200, Andreas Schwab wrote:
> Tim Abbott <tabbott@ksplice.com> writes:
> 
> > Below is a new version of the second patch that attempts to address this 
> > by putting the ALIGN inside a section, so that _end is at the end of the 
> > load segment (I also did a bit more cleanup):
> >
> >   .init_end : {
> > 	/* This ALIGN be in a section so that _end is at the end of the
> > 	   load segment. */
> > 	. = ALIGN(PAGE_SIZE);
> > 	__init_end = .;
> >   }
> >   
> >   _end = .;
> 
> This works fine.

Thanks for testing Andreas.

Geert - I assume you take the corrected version and push to Linus?

	Sam

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

* Re: [PATCH v2 2/2] m68k: Cleanup linker scripts using new linker  script macros.
  2009-09-30  6:53             ` Sam Ravnborg
  (?)
@ 2009-10-04  8:32             ` Geert Uytterhoeven
  -1 siblings, 0 replies; 19+ messages in thread
From: Geert Uytterhoeven @ 2009-10-04  8:32 UTC (permalink / raw)
  To: Sam Ravnborg
  Cc: Andreas Schwab, Tim Abbott, Roman Zippel, linux-m68k, linux-kernel

On Wed, Sep 30, 2009 at 08:53, Sam Ravnborg <sam@ravnborg.org> wrote:
> On Tue, Sep 29, 2009 at 07:12:56PM +0200, Andreas Schwab wrote:
>> Tim Abbott <tabbott@ksplice.com> writes:
>>
>> > Below is a new version of the second patch that attempts to address this
>> > by putting the ALIGN inside a section, so that _end is at the end of the
>> > load segment (I also did a bit more cleanup):
>> >
>> >   .init_end : {
>> >     /* This ALIGN be in a section so that _end is at the end of the
>> >        load segment. */
>> >     . = ALIGN(PAGE_SIZE);
>> >     __init_end = .;
>> >   }
>> >
>> >   _end = .;
>>
>> This works fine.
>
> Thanks for testing Andreas.
>
> Geert - I assume you take the corrected version and push to Linus?

I will (eventually), but it probably won't make it for -rc2. Same for
the other m68k patches I have still lying around.
I hope to have more m68k development time in a month or so...

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

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

* Re: [PATCH v2 1/2] m68k: Make thread_info.h usable from assembly.
  2009-09-27 11:58       ` Sam Ravnborg
  (?)
@ 2009-11-20  7:56       ` Geert Uytterhoeven
  -1 siblings, 0 replies; 19+ messages in thread
From: Geert Uytterhoeven @ 2009-11-20  7:56 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Tim Abbott, Roman Zippel, linux-m68k, linux-kernel

On Sun, Sep 27, 2009 at 12:58, Sam Ravnborg <sam@ravnborg.org> wrote:
> On Sun, Sep 27, 2009 at 11:55:55AM +0200, Geert Uytterhoeven wrote:
>> On Wed, Sep 16, 2009 at 18:44, Tim Abbott <tabbott@ksplice.com> wrote:
>> > Signed-off-by: Tim Abbott <tabbott@ksplice.com>
>> > Cc: Geert Uytterhoeven <geert@linux-m68k.org>
>> > Cc: Roman Zippel <zippel@linux-m68k.org>
>> > Cc: linux-m68k@lists.linux-m68k.org
>> > Cc: Sam Ravnborg <sam@ravnborg.org>
>> > ---
>> >  arch/m68k/include/asm/thread_info_mm.h |    2 ++
>> >  1 files changed, 2 insertions(+), 0 deletions(-)
>> >
>> > diff --git a/arch/m68k/include/asm/thread_info_mm.h b/arch/m68k/include/asm/thread_info_mm.h
>> > index b6da388..5f36cf1 100644
>> > --- a/arch/m68k/include/asm/thread_info_mm.h
>> > +++ b/arch/m68k/include/asm/thread_info_mm.h
>> > @@ -8,6 +8,7 @@
>> >  #include <asm/types.h>
>> >  #include <asm/page.h>
>> >
>> > +#ifndef __ASSEMBLY__
>> >  struct thread_info {
>> >        struct task_struct      *task;          /* main task structure */
>> >        unsigned long           flags;
>> > @@ -16,6 +17,7 @@ struct thread_info {
>> >        __u32 cpu; /* should always be 0 on m68k */
>> >        struct restart_block    restart_block;
>> >  };
>> > +#endif /* __ASSEMBLY__ */
>> >
>> >  #define PREEMPT_ACTIVE         0x4000000
>>
>> This is not sufficient. <asm/thread_info_mm.h> pulls in <asm/current.h>,
>> which contains C only. So you also need:
>>
>> --- a/arch/m68k/include/asm/thread_info_mm.h
>> +++ b/arch/m68k/include/asm/thread_info_mm.h
>> @@ -4,11 +4,12 @@
>>  #ifndef ASM_OFFSETS_C
>>  #include <asm/asm-offsets.h>
>>  #endif
>> -#include <asm/current.h>
>>  #include <asm/types.h>
>>  #include <asm/page.h>
>>
>>  #ifndef __ASSEMBLY__
>> +#include <asm/current.h>
>> +
>>  struct thread_info {
>>       struct task_struct      *task;          /* main task structure */
>>       unsigned long           flags;
>
>
> upstream m68k does not build for me so I could not test.
> But I think the correct fix is to drop the include or current from thread_info.
> No-one except m68k needs to include current.h in thread_info.h.

Dropping it causes lots of undeclared errors, so I'm gonna apply Tim's
patch with my additional fix.

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

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

end of thread, other threads:[~2009-11-20  7:56 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-16 16:44 [PATCH v2 0/2] Linker script cleanup patches for m68k Tim Abbott
2009-09-16 16:44 ` [PATCH v2 1/2] m68k: Make thread_info.h usable from assembly Tim Abbott
2009-09-16 16:44   ` Tim Abbott
2009-09-27  9:55   ` Geert Uytterhoeven
2009-09-27  9:55     ` Geert Uytterhoeven
2009-09-27 11:58     ` Sam Ravnborg
2009-09-27 11:58       ` Sam Ravnborg
2009-11-20  7:56       ` Geert Uytterhoeven
2009-09-16 16:44 ` [PATCH v2 2/2] m68k: Cleanup linker scripts using new linker script macros Tim Abbott
2009-09-16 16:44   ` Tim Abbott
2009-09-27  9:58   ` Geert Uytterhoeven
2009-09-27  9:58     ` Geert Uytterhoeven
2009-09-27 13:01     ` Andreas Schwab
2009-09-27 17:57       ` Tim Abbott
2009-09-27 17:57         ` Tim Abbott
2009-09-29 17:12         ` Andreas Schwab
2009-09-30  6:53           ` Sam Ravnborg
2009-09-30  6:53             ` Sam Ravnborg
2009-10-04  8:32             ` Geert Uytterhoeven

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.