powerpc/mm: Change setbat() to take a pgprot_t rather than flags
authorMichael Ellerman <mpe@ellerman.id.au>
Wed, 25 Mar 2015 09:11:55 +0000 (20:11 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 7 Apr 2015 07:15:13 +0000 (17:15 +1000)
The callers of setbat() are actually passing a pgprot_t for the flags
parameter. This doesn't matter unless STRICT_MM_TYPECHECKS is enabled.
So we can turn that on without breaking the build, change setbat() to
take a pgprot_t and have it convert it to an unsigned long internally.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/mm/mmu_decl.h
arch/powerpc/mm/ppc_mmu_32.c

index 78c45f392f5b90dfad0a70ad7bb40a6928d40e7d..085b66b108910ec7be193876c51030fe0cb70649 100644 (file)
@@ -96,7 +96,7 @@ extern void _tlbia(void);
 extern void mapin_ram(void);
 extern int map_page(unsigned long va, phys_addr_t pa, int flags);
 extern void setbat(int index, unsigned long virt, phys_addr_t phys,
-                  unsigned int size, int flags);
+                  unsigned int size, pgprot_t prot);
 
 extern int __map_without_bats;
 extern int __allow_ioremap_reserved;
index eb0e489b1bb78872a02c42b91fd0798f7740d02e..6b2f3e457171a1f5347494f69aea6fa2c5cc4d03 100644 (file)
@@ -113,11 +113,12 @@ unsigned long __init mmu_mapin_ram(unsigned long top)
  * of 2 between 128k and 256M.
  */
 void __init setbat(int index, unsigned long virt, phys_addr_t phys,
-                  unsigned int size, int flags)
+                  unsigned int size, pgprot_t prot)
 {
        unsigned int bl;
        int wimgxpp;
        struct ppc_bat *bat = BATS[index];
+       unsigned long flags = pgprot_val(prot);
 
        if ((flags & _PAGE_NO_CACHE) ||
            (cpu_has_feature(CPU_FTR_NEED_COHERENT) == 0))