aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kernel/setup64.c2
-rw-r--r--arch/x86/mm/ioremap.c3
-rw-r--r--include/linux/linkage.h4
3 files changed, 6 insertions, 3 deletions
diff --git a/arch/x86/kernel/setup64.c b/arch/x86/kernel/setup64.c
index 631ea6cc01d8..fc1a56da8240 100644
--- a/arch/x86/kernel/setup64.c
+++ b/arch/x86/kernel/setup64.c
@@ -40,7 +40,7 @@ EXPORT_SYMBOL(_cpu_pda);
40 40
41struct desc_ptr idt_descr = { 256 * 16 - 1, (unsigned long) idt_table }; 41struct desc_ptr idt_descr = { 256 * 16 - 1, (unsigned long) idt_table };
42 42
43char boot_cpu_stack[IRQSTACKSIZE] __attribute__((section(".bss.page_aligned"))); 43char boot_cpu_stack[IRQSTACKSIZE] __page_aligned_bss;
44 44
45unsigned long __supported_pte_mask __read_mostly = ~0UL; 45unsigned long __supported_pte_mask __read_mostly = ~0UL;
46EXPORT_SYMBOL_GPL(__supported_pte_mask); 46EXPORT_SYMBOL_GPL(__supported_pte_mask);
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index 416ea415f5c2..0561fde56a51 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -394,8 +394,7 @@ static int __init early_ioremap_debug_setup(char *str)
394early_param("early_ioremap_debug", early_ioremap_debug_setup); 394early_param("early_ioremap_debug", early_ioremap_debug_setup);
395 395
396static __initdata int after_paging_init; 396static __initdata int after_paging_init;
397static pte_t bm_pte[PAGE_SIZE/sizeof(pte_t)] 397static pte_t bm_pte[PAGE_SIZE/sizeof(pte_t)] __page_aligned_bss;
398 __section(.bss.page_aligned);
399 398
400static inline pmd_t * __init early_ioremap_pmd(unsigned long addr) 399static inline pmd_t * __init early_ioremap_pmd(unsigned long addr)
401{ 400{
diff --git a/include/linux/linkage.h b/include/linux/linkage.h
index 2119610b24f8..9fd1f859021b 100644
--- a/include/linux/linkage.h
+++ b/include/linux/linkage.h
@@ -1,6 +1,7 @@
1#ifndef _LINUX_LINKAGE_H 1#ifndef _LINUX_LINKAGE_H
2#define _LINUX_LINKAGE_H 2#define _LINUX_LINKAGE_H
3 3
4#include <linux/compiler.h>
4#include <asm/linkage.h> 5#include <asm/linkage.h>
5 6
6#ifdef __cplusplus 7#ifdef __cplusplus
@@ -17,6 +18,9 @@
17# define asmregparm 18# define asmregparm
18#endif 19#endif
19 20
21#define __page_aligned_data __section(.data.page_aligned) __aligned(PAGE_SIZE)
22#define __page_aligned_bss __section(.bss.page_aligned) __aligned(PAGE_SIZE)
23
20/* 24/*
21 * This is used by architectures to keep arguments on the stack 25 * This is used by architectures to keep arguments on the stack
22 * untouched by the compiler by keeping them live until the end. 26 * untouched by the compiler by keeping them live until the end.