diff options
Diffstat (limited to 'include/asm-x86_64')
-rw-r--r-- | include/asm-x86_64/page.h | 6 | ||||
-rw-r--r-- | include/asm-x86_64/pgtable.h | 4 |
2 files changed, 4 insertions, 6 deletions
diff --git a/include/asm-x86_64/page.h b/include/asm-x86_64/page.h index d554b94485df..4974433bbf34 100644 --- a/include/asm-x86_64/page.h +++ b/include/asm-x86_64/page.h | |||
@@ -102,17 +102,15 @@ typedef struct { unsigned long pgprot; } pgprot_t; | |||
102 | 102 | ||
103 | /* Note: __pa(&symbol_visible_to_c) should be always replaced with __pa_symbol. | 103 | /* Note: __pa(&symbol_visible_to_c) should be always replaced with __pa_symbol. |
104 | Otherwise you risk miscompilation. */ | 104 | Otherwise you risk miscompilation. */ |
105 | #define __pa(x) (((unsigned long)(x)>=__START_KERNEL_map)?(unsigned long)(x) - (unsigned long)__START_KERNEL_map:(unsigned long)(x) - PAGE_OFFSET) | 105 | #define __pa(x) ((unsigned long)(x) - PAGE_OFFSET) |
106 | /* __pa_symbol should be used for C visible symbols. | 106 | /* __pa_symbol should be used for C visible symbols. |
107 | This seems to be the official gcc blessed way to do such arithmetic. */ | 107 | This seems to be the official gcc blessed way to do such arithmetic. */ |
108 | #define __pa_symbol(x) \ | 108 | #define __pa_symbol(x) \ |
109 | ({unsigned long v; \ | 109 | ({unsigned long v; \ |
110 | asm("" : "=r" (v) : "0" (x)); \ | 110 | asm("" : "=r" (v) : "0" (x)); \ |
111 | __pa(v); }) | 111 | (v - __START_KERNEL_map); }) |
112 | 112 | ||
113 | #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) | 113 | #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) |
114 | #define __boot_va(x) __va(x) | ||
115 | #define __boot_pa(x) __pa(x) | ||
116 | #ifdef CONFIG_FLATMEM | 114 | #ifdef CONFIG_FLATMEM |
117 | #define pfn_valid(pfn) ((pfn) < end_pfn) | 115 | #define pfn_valid(pfn) ((pfn) < end_pfn) |
118 | #endif | 116 | #endif |
diff --git a/include/asm-x86_64/pgtable.h b/include/asm-x86_64/pgtable.h index 703f0243f27a..c1865e38c7b7 100644 --- a/include/asm-x86_64/pgtable.h +++ b/include/asm-x86_64/pgtable.h | |||
@@ -19,7 +19,7 @@ extern pmd_t level2_kernel_pgt[512]; | |||
19 | extern pgd_t init_level4_pgt[]; | 19 | extern pgd_t init_level4_pgt[]; |
20 | extern unsigned long __supported_pte_mask; | 20 | extern unsigned long __supported_pte_mask; |
21 | 21 | ||
22 | #define swapper_pg_dir init_level4_pgt | 22 | #define swapper_pg_dir ((pgd_t *)NULL) |
23 | 23 | ||
24 | extern void paging_init(void); | 24 | extern void paging_init(void); |
25 | extern void clear_kernel_mapping(unsigned long addr, unsigned long size); | 25 | extern void clear_kernel_mapping(unsigned long addr, unsigned long size); |
@@ -29,7 +29,7 @@ extern void clear_kernel_mapping(unsigned long addr, unsigned long size); | |||
29 | * for zero-mapped memory areas etc.. | 29 | * for zero-mapped memory areas etc.. |
30 | */ | 30 | */ |
31 | extern unsigned long empty_zero_page[PAGE_SIZE/sizeof(unsigned long)]; | 31 | extern unsigned long empty_zero_page[PAGE_SIZE/sizeof(unsigned long)]; |
32 | #define ZERO_PAGE(vaddr) (virt_to_page(empty_zero_page)) | 32 | #define ZERO_PAGE(vaddr) (pfn_to_page(__pa_symbol(&empty_zero_page) >> PAGE_SHIFT)) |
33 | 33 | ||
34 | #endif /* !__ASSEMBLY__ */ | 34 | #endif /* !__ASSEMBLY__ */ |
35 | 35 | ||