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>
This commit is contained in:
parent
92d9091f30
commit
b74e34dbde
|
@ -23,6 +23,5 @@ EXPORT_SYMBOL(init_task);
|
|||
* in etrap.S which assumes it.
|
||||
*/
|
||||
union thread_union init_thread_union
|
||||
__attribute__((section (".text\"\n\t#")))
|
||||
__attribute__((aligned (THREAD_SIZE)))
|
||||
__attribute__((section (".data.init_task")))
|
||||
= { INIT_THREAD_INFO(init_task) };
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
/* ld script for sparc32/sparc64 kernel */
|
||||
|
||||
#include <asm-generic/vmlinux.lds.h>
|
||||
|
||||
#include <asm/page.h>
|
||||
#include <asm/thread_info.h>
|
||||
|
||||
#ifdef CONFIG_SPARC32
|
||||
#define INITIAL_ADDRESS 0x10000 + SIZEOF_HEADERS
|
||||
|
@ -65,8 +67,15 @@ SECTIONS
|
|||
.data.read_mostly : {
|
||||
*(.data.read_mostly)
|
||||
}
|
||||
/* End of data section */
|
||||
_edata = .;
|
||||
PROVIDE (edata = .);
|
||||
|
||||
/* init_task */
|
||||
. = ALIGN(THREAD_SIZE);
|
||||
.data.init_task : {
|
||||
*(.data.init_task)
|
||||
}
|
||||
.fixup : {
|
||||
__start___fixup = .;
|
||||
*(.fixup)
|
||||
|
|
Loading…
Reference in a new issue