Both ioremap_prot() are idenfical, move them into ioremap.c

Signed-off-by: Christophe Leroy <christophe.le...@c-s.fr>
---
 arch/powerpc/mm/ioremap.c    | 19 +++++++++++++++++++
 arch/powerpc/mm/pgtable_32.c | 17 -----------------
 arch/powerpc/mm/pgtable_64.c | 24 ------------------------
 3 files changed, 19 insertions(+), 41 deletions(-)

diff --git a/arch/powerpc/mm/ioremap.c b/arch/powerpc/mm/ioremap.c
index 89479ee88344..a44d9e4c948a 100644
--- a/arch/powerpc/mm/ioremap.c
+++ b/arch/powerpc/mm/ioremap.c
@@ -50,3 +50,22 @@ void __iomem *ioremap_coherent(phys_addr_t addr, unsigned 
long size)
                return iowa_ioremap(addr, size, prot, caller);
        return __ioremap_caller(addr, size, prot, caller);
 }
+
+void __iomem *ioremap_prot(phys_addr_t addr, unsigned long size, unsigned long 
flags)
+{
+       pte_t pte = __pte(flags);
+       void *caller = __builtin_return_address(0);
+
+       /* writeable implies dirty for kernel addresses */
+       if (pte_write(pte))
+               pte = pte_mkdirty(pte);
+
+       /* we don't want to let _PAGE_USER and _PAGE_EXEC leak out */
+       pte = pte_exprotect(pte);
+       pte = pte_mkprivileged(pte);
+
+       if (iowa_is_active())
+               return iowa_ioremap(addr, size, pte_pgprot(pte), caller);
+       return __ioremap_caller(addr, size, pte_pgprot(pte), caller);
+}
+EXPORT_SYMBOL(ioremap_prot);
diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c
index 1999ec11706d..8126c2d1afbf 100644
--- a/arch/powerpc/mm/pgtable_32.c
+++ b/arch/powerpc/mm/pgtable_32.c
@@ -39,23 +39,6 @@ EXPORT_SYMBOL(ioremap_bot);  /* aka VMALLOC_END */
 extern char etext[], _stext[], _sinittext[], _einittext[];
 
 void __iomem *
-ioremap_prot(phys_addr_t addr, unsigned long size, unsigned long flags)
-{
-       pte_t pte = __pte(flags);
-
-       /* writeable implies dirty for kernel addresses */
-       if (pte_write(pte))
-               pte = pte_mkdirty(pte);
-
-       /* we don't want to let _PAGE_USER and _PAGE_EXEC leak out */
-       pte = pte_exprotect(pte);
-       pte = pte_mkprivileged(pte);
-
-       return __ioremap_caller(addr, size, pte_pgprot(pte), 
__builtin_return_address(0));
-}
-EXPORT_SYMBOL(ioremap_prot);
-
-void __iomem *
 __ioremap_caller(phys_addr_t addr, unsigned long size, pgprot_t prot, void 
*caller)
 {
        unsigned long v, i;
diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c
index 3ad921ac4862..6fa2e969bf0e 100644
--- a/arch/powerpc/mm/pgtable_64.c
+++ b/arch/powerpc/mm/pgtable_64.c
@@ -204,29 +204,6 @@ void __iomem * __ioremap_caller(phys_addr_t addr, unsigned 
long size,
        return ret;
 }
 
-void __iomem * ioremap_prot(phys_addr_t addr, unsigned long size,
-                            unsigned long flags)
-{
-       pte_t pte = __pte(flags);
-       void *caller = __builtin_return_address(0);
-
-       /* writeable implies dirty for kernel addresses */
-       if (pte_write(pte))
-               pte = pte_mkdirty(pte);
-
-       /* we don't want to let _PAGE_EXEC leak out */
-       pte = pte_exprotect(pte);
-       /*
-        * Force kernel mapping.
-        */
-       pte = pte_mkprivileged(pte);
-
-       if (iowa_is_active())
-               return iowa_ioremap(addr, size, pte_pgprot(pte), caller);
-       return __ioremap_caller(addr, size, pte_pgprot(pte), caller);
-}
-
-
 /*  
  * Unmap an IO region and remove it from imalloc'd list.
  * Access to IO memory should be serialized by driver.
@@ -253,7 +230,6 @@ void iounmap(volatile void __iomem *token)
        __iounmap(token);
 }
 
-EXPORT_SYMBOL(ioremap_prot);
 EXPORT_SYMBOL(__ioremap_at);
 EXPORT_SYMBOL(iounmap);
 EXPORT_SYMBOL(__iounmap);
-- 
2.13.3

Reply via email to