diff options
author | Sam Ravnborg <sam@ravnborg.org> | 2008-12-27 03:34:41 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-12-27 03:34:41 -0500 |
commit | b74e34dbdeb39136e0557930a373392b7d644f43 (patch) | |
tree | bfe3fb0ba71031cc0a07ee8ee19761b555d5dfe2 /arch/sparc/kernel | |
parent | 92d9091f305cc32eb64edc1757d925b93acde6da (diff) |
sparc: use .data.init_task section for init_thread_union
Use a dedicated aligned section for the init_thread_union
variable and declare this section in vmlinux.lds.
This align sparc with most other architectures. Eventually this allow
the init_task bits to be unified across all architectures.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/kernel')
-rw-r--r-- | arch/sparc/kernel/init_task.c | 3 | ||||
-rw-r--r-- | arch/sparc/kernel/vmlinux.lds.S | 9 |
2 files changed, 10 insertions, 2 deletions
diff --git a/arch/sparc/kernel/init_task.c b/arch/sparc/kernel/init_task.c index 8e64ebc445ef..62126e4cec54 100644 --- a/arch/sparc/kernel/init_task.c +++ b/arch/sparc/kernel/init_task.c | |||
@@ -23,6 +23,5 @@ EXPORT_SYMBOL(init_task); | |||
23 | * in etrap.S which assumes it. | 23 | * in etrap.S which assumes it. |
24 | */ | 24 | */ |
25 | union thread_union init_thread_union | 25 | union thread_union init_thread_union |
26 | __attribute__((section (".text\"\n\t#"))) | 26 | __attribute__((section (".data.init_task"))) |
27 | __attribute__((aligned (THREAD_SIZE))) | ||
28 | = { INIT_THREAD_INFO(init_task) }; | 27 | = { INIT_THREAD_INFO(init_task) }; |
diff --git a/arch/sparc/kernel/vmlinux.lds.S b/arch/sparc/kernel/vmlinux.lds.S index 4bfbeffb7320..59c8d090920c 100644 --- a/arch/sparc/kernel/vmlinux.lds.S +++ b/arch/sparc/kernel/vmlinux.lds.S | |||
@@ -1,7 +1,9 @@ | |||
1 | /* ld script for sparc32/sparc64 kernel */ | 1 | /* ld script for sparc32/sparc64 kernel */ |
2 | 2 | ||
3 | #include <asm-generic/vmlinux.lds.h> | 3 | #include <asm-generic/vmlinux.lds.h> |
4 | |||
4 | #include <asm/page.h> | 5 | #include <asm/page.h> |
6 | #include <asm/thread_info.h> | ||
5 | 7 | ||
6 | #ifdef CONFIG_SPARC32 | 8 | #ifdef CONFIG_SPARC32 |
7 | #define INITIAL_ADDRESS 0x10000 + SIZEOF_HEADERS | 9 | #define INITIAL_ADDRESS 0x10000 + SIZEOF_HEADERS |
@@ -65,8 +67,15 @@ SECTIONS | |||
65 | .data.read_mostly : { | 67 | .data.read_mostly : { |
66 | *(.data.read_mostly) | 68 | *(.data.read_mostly) |
67 | } | 69 | } |
70 | /* End of data section */ | ||
68 | _edata = .; | 71 | _edata = .; |
69 | PROVIDE (edata = .); | 72 | PROVIDE (edata = .); |
73 | |||
74 | /* init_task */ | ||
75 | . = ALIGN(THREAD_SIZE); | ||
76 | .data.init_task : { | ||
77 | *(.data.init_task) | ||
78 | } | ||
70 | .fixup : { | 79 | .fixup : { |
71 | __start___fixup = .; | 80 | __start___fixup = .; |
72 | *(.fixup) | 81 | *(.fixup) |