Skip to content

Commit

Permalink
ARM: vmlinux.lds.S: replace open coded .data sections with generic ma…
Browse files Browse the repository at this point in the history
…cros

Our .data section is missing PAGE_ALIGNED_DATA() which contains,
amongst other things, the vdso page. This creates a System.map that
looks like this:

c15769a8 D _edata
c1577000 d vdso_data_store
c1578000 D __start___bug_table
c1580544 D __stop___bug_table
c1580544 B __bss_start

By using RW_DATA_SECTION() we pick whatever generic sections might be
added in the future and have page-aligned data next to other strongly
aligned data. Furthermore we now include the entire thing, including the
bug table, in the data accounting surrounded by _sdata/_edata.

While at it let's also remplace the open coded .init.data by its
equivalent INIT_DATA_SECTION().

Signed-off-by: Nicolas Pitre <nico@linaro.org>
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Tested-by: Chris Brandt <Chris.Brandt@renesas.com>
  • Loading branch information
Nicolas Pitre committed Sep 10, 2017
1 parent 88cac29 commit 861e37d
Showing 1 changed file with 6 additions and 32 deletions.
38 changes: 6 additions & 32 deletions arch/arm/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -214,14 +214,9 @@ SECTIONS
*(.pv_table)
__pv_table_end = .;
}
.init.data : {
INIT_DATA
INIT_SETUP(16)
INIT_CALLS
CON_INITCALL
SECURITY_INITCALL
INIT_RAM_FS
}

INIT_DATA_SECTION(16)

.exit.data : {
ARM_EXIT_KEEP(EXIT_DATA)
}
Expand All @@ -237,30 +232,9 @@ SECTIONS
#endif
__init_end = .;

.data : {
_data = .; /* address in memory */
_sdata = .;

/*
* first, the init task union, aligned
* to an 8192 byte boundary.
*/
INIT_TASK_DATA(THREAD_SIZE)

NOSAVE_DATA
CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES)
READ_MOSTLY_DATA(L1_CACHE_BYTES)

/*
* and the usual data section
*/
DATA_DATA
CONSTRUCTORS

_edata = .;
}

BUG_TABLE
_sdata = .;
RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
_edata = .;

#ifdef CONFIG_HAVE_TCM
/*
Expand Down

0 comments on commit 861e37d

Please sign in to comment.