Commit 0fa63ad7 authored by Bernd Schmidt's avatar Bernd Schmidt Committed by Bryan Wu
Browse files

Blackfin arch: fix bug which unaligns the init thread's stack and causes the current macro to fail.



switch to using proper defines this time (THREAD_SIZE and PAGE_SIZE)
instead of just PAGE_SIZE everywhere

Signed-off-by: default avatarMike Frysinger <michael.frysinger@analog.com>
Signed-off-by: default avatarBernd Schmidt <bernd.schmidt@analog.com>
Signed-off-by: default avatarBryan Wu <bryan.wu@analog.com>
parent f1b927dc
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@
#include <asm-generic/vmlinux.lds.h>
#include <asm/mem_map.h>
#include <asm/page.h>
#include <asm/thread_info.h>

OUTPUT_FORMAT("elf32-bfin")
ENTRY(__start)
@@ -64,8 +65,12 @@ SECTIONS

	.data :
	{
		. = ALIGN(PAGE_SIZE);
		/* make sure the init_task is aligned to the
		 * kernel thread size so we can locate the kernel
		 * stack properly and quickly.
		 */
		__sdata = .;
		. = ALIGN(THREAD_SIZE);
		*(.data.init_task)
		DATA_DATA
		CONSTRUCTORS
@@ -73,14 +78,14 @@ SECTIONS
		. = ALIGN(32);
		*(.data.cacheline_aligned)

		. = ALIGN(PAGE_SIZE);
		. = ALIGN(THREAD_SIZE);
		__edata = .;
	}

	. = ALIGN(PAGE_SIZE);
	___init_begin = .;
	.init :
	{
		. = ALIGN(PAGE_SIZE);
		__sinittext = .;
		*(.init.text)
		__einittext = .;
@@ -153,10 +158,9 @@ SECTIONS
		__ebss_b_l1 = .;
	}

	. = LOADADDR(.data_b_l1) + SIZEOF(.data_b_l1);
	___init_end = ALIGN(PAGE_SIZE);
	___init_end = LOADADDR(.data_b_l1) + SIZEOF(.data_b_l1);

	.bss ___init_end :
	.bss LOADADDR(.data_b_l1) + SIZEOF(.data_b_l1) :
	{
		. = ALIGN(4);
		___bss_start = .;