diff options
author | Michal Simek <monstr@monstr.eu> | 2010-04-13 02:59:37 -0400 |
---|---|---|
committer | Michal Simek <monstr@monstr.eu> | 2010-05-06 05:21:58 -0400 |
commit | 63f1032b97638fc2b023fa968b7703c8ebe6d6d9 (patch) | |
tree | d44fba046ea176d9beb1d90cc2bf940037b29f0f /arch/microblaze | |
parent | 7a0248e819ddaf2c2f28e6edd287b90aa930702a (diff) |
microblaze: Quiet section mismatch warnings for MMU version
Remove section mismatch - based on ppc aproach.
WARNING: vmlinux.o(.text+0x64834): Section mismatch in reference
from the function __pte_alloc_kernel() to the function .init.text:early_get_page()
The function __pte_alloc_kernel() references
the function __init early_get_page().
This is often because __pte_alloc_kernel lacks a __init
annotation or the annotation of early_get_page is wrong.
Signed-off-by: Michal Simek <monstr@monstr.eu>
Diffstat (limited to 'arch/microblaze')
-rw-r--r-- | arch/microblaze/include/asm/pgalloc.h | 16 | ||||
-rw-r--r-- | arch/microblaze/mm/pgtable.c | 15 |
2 files changed, 16 insertions, 15 deletions
diff --git a/arch/microblaze/include/asm/pgalloc.h b/arch/microblaze/include/asm/pgalloc.h index f44b0d696fe2..c614a893f8a3 100644 --- a/arch/microblaze/include/asm/pgalloc.h +++ b/arch/microblaze/include/asm/pgalloc.h | |||
@@ -108,21 +108,7 @@ extern inline void free_pgd_slow(pgd_t *pgd) | |||
108 | #define pmd_alloc_one_fast(mm, address) ({ BUG(); ((pmd_t *)1); }) | 108 | #define pmd_alloc_one_fast(mm, address) ({ BUG(); ((pmd_t *)1); }) |
109 | #define pmd_alloc_one(mm, address) ({ BUG(); ((pmd_t *)2); }) | 109 | #define pmd_alloc_one(mm, address) ({ BUG(); ((pmd_t *)2); }) |
110 | 110 | ||
111 | static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, | 111 | extern pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long addr); |
112 | unsigned long address) | ||
113 | { | ||
114 | pte_t *pte; | ||
115 | extern void *early_get_page(void); | ||
116 | if (mem_init_done) { | ||
117 | pte = (pte_t *)__get_free_page(GFP_KERNEL | | ||
118 | __GFP_REPEAT | __GFP_ZERO); | ||
119 | } else { | ||
120 | pte = (pte_t *)early_get_page(); | ||
121 | if (pte) | ||
122 | clear_page(pte); | ||
123 | } | ||
124 | return pte; | ||
125 | } | ||
126 | 112 | ||
127 | static inline struct page *pte_alloc_one(struct mm_struct *mm, | 113 | static inline struct page *pte_alloc_one(struct mm_struct *mm, |
128 | unsigned long address) | 114 | unsigned long address) |
diff --git a/arch/microblaze/mm/pgtable.c b/arch/microblaze/mm/pgtable.c index d31312cde6ea..c43bfc94e714 100644 --- a/arch/microblaze/mm/pgtable.c +++ b/arch/microblaze/mm/pgtable.c | |||
@@ -274,3 +274,18 @@ unsigned long iopa(unsigned long addr) | |||
274 | 274 | ||
275 | return pa; | 275 | return pa; |
276 | } | 276 | } |
277 | |||
278 | __init_refok pte_t *pte_alloc_one_kernel(struct mm_struct *mm, | ||
279 | unsigned long address) | ||
280 | { | ||
281 | pte_t *pte; | ||
282 | if (mem_init_done) { | ||
283 | pte = (pte_t *)__get_free_page(GFP_KERNEL | | ||
284 | __GFP_REPEAT | __GFP_ZERO); | ||
285 | } else { | ||
286 | pte = (pte_t *)early_get_page(); | ||
287 | if (pte) | ||
288 | clear_page(pte); | ||
289 | } | ||
290 | return pte; | ||
291 | } | ||