Skip to content

Commit

Permalink
Blackfin arch: fix bug which unaligns the init thread's stack and cau…
Browse files Browse the repository at this point in the history
…ses 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: Mike Frysinger <michael.frysinger@analog.com>
Signed-off-by: Bernd Schmidt <bernd.schmidt@analog.com>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
  • Loading branch information
Bernd Schmidt authored and Bryan Wu committed Jul 25, 2007
1 parent f1b927d commit 0fa63ad
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions arch/blackfin/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -64,23 +65,27 @@ 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

. = 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 = .;
Expand Down Expand Up @@ -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 = .;
Expand Down

0 comments on commit 0fa63ad

Please sign in to comment.