aboutsummaryrefslogtreecommitdiffstats
path: root/arch/microblaze/mm/pgtable.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/microblaze/mm/pgtable.c')
-rw-r--r--arch/microblaze/mm/pgtable.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/arch/microblaze/mm/pgtable.c b/arch/microblaze/mm/pgtable.c
index d1c06d07fed8..10b3bd0a980d 100644
--- a/arch/microblaze/mm/pgtable.c
+++ b/arch/microblaze/mm/pgtable.c
@@ -26,8 +26,8 @@
26 * 26 *
27 */ 27 */
28 28
29#include <linux/export.h>
29#include <linux/kernel.h> 30#include <linux/kernel.h>
30#include <linux/module.h>
31#include <linux/types.h> 31#include <linux/types.h>
32#include <linux/vmalloc.h> 32#include <linux/vmalloc.h>
33#include <linux/init.h> 33#include <linux/init.h>
@@ -39,8 +39,6 @@
39#include <asm/sections.h> 39#include <asm/sections.h>
40#include <asm/fixmap.h> 40#include <asm/fixmap.h>
41 41
42#define flush_HPTE(X, va, pg) _tlbie(va)
43
44unsigned long ioremap_base; 42unsigned long ioremap_base;
45unsigned long ioremap_bot; 43unsigned long ioremap_bot;
46EXPORT_SYMBOL(ioremap_bot); 44EXPORT_SYMBOL(ioremap_bot);
@@ -75,9 +73,8 @@ static void __iomem *__ioremap(phys_addr_t addr, unsigned long size,
75 p >= memory_start && p < virt_to_phys(high_memory) && 73 p >= memory_start && p < virt_to_phys(high_memory) &&
76 !(p >= virt_to_phys((unsigned long)&__bss_stop) && 74 !(p >= virt_to_phys((unsigned long)&__bss_stop) &&
77 p < virt_to_phys((unsigned long)__bss_stop))) { 75 p < virt_to_phys((unsigned long)__bss_stop))) {
78 printk(KERN_WARNING "__ioremap(): phys addr "PTE_FMT 76 pr_warn("__ioremap(): phys addr "PTE_FMT" is RAM lr %pf\n",
79 " is RAM lr %pf\n", (unsigned long)p, 77 (unsigned long)p, __builtin_return_address(0));
80 __builtin_return_address(0));
81 return NULL; 78 return NULL;
82 } 79 }
83 80
@@ -128,9 +125,10 @@ void __iomem *ioremap(phys_addr_t addr, unsigned long size)
128} 125}
129EXPORT_SYMBOL(ioremap); 126EXPORT_SYMBOL(ioremap);
130 127
131void iounmap(void *addr) 128void iounmap(void __iomem *addr)
132{ 129{
133 if (addr > high_memory && (unsigned long) addr < ioremap_bot) 130 if ((__force void *)addr > high_memory &&
131 (unsigned long) addr < ioremap_bot)
134 vfree((void *) (PAGE_MASK & (unsigned long) addr)); 132 vfree((void *) (PAGE_MASK & (unsigned long) addr));
135} 133}
136EXPORT_SYMBOL(iounmap); 134EXPORT_SYMBOL(iounmap);
@@ -152,8 +150,7 @@ int map_page(unsigned long va, phys_addr_t pa, int flags)
152 set_pte_at(&init_mm, va, pg, pfn_pte(pa >> PAGE_SHIFT, 150 set_pte_at(&init_mm, va, pg, pfn_pte(pa >> PAGE_SHIFT,
153 __pgprot(flags))); 151 __pgprot(flags)));
154 if (unlikely(mem_init_done)) 152 if (unlikely(mem_init_done))
155 flush_HPTE(0, va, pmd_val(*pd)); 153 _tlbie(va);
156 /* flush_HPTE(0, va, pg); */
157 } 154 }
158 return err; 155 return err;
159} 156}