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) |
