build: add __page_aligned_data and __page_aligned_bss
authorJeremy Fitzhardinge <jeremy@goop.org>
Wed, 28 May 2008 14:02:14 +0000 (15:02 +0100)
committerIngo Molnar <mingo@elte.hu>
Tue, 8 Jul 2008 10:48:13 +0000 (12:48 +0200)
commita7bf0bd5e6af7fe69342dabf2a3b721f0163469a
tree3f7e08f0df4c5eccf81732dcf95b8cc4efafa203
parent1ecd27657b735128a728ebf0c31fce5e1456718a
build: add __page_aligned_data and __page_aligned_bss

Making a variable page-aligned by using
__attribute__((section(".data.page_aligned"))) is fragile because if
sizeof(variable) is not also a multiple of page size, it leaves
variables in the remainder of the section unaligned.

This patch introduces two new qualifiers, __page_aligned_data and
__page_aligned_bss to set the section *and* the alignment of
variables.  This makes page-aligned variables more robust because the
linker will make sure they're aligned properly.  Unfortunately it
requires *all* page-aligned data to use these macros...

Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/setup64.c
arch/x86/mm/ioremap.c
include/linux/linkage.h