ARM: make_coherent: convert adjust_pte() to use p*d_none_or_clear_bad()
authorRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 18 Dec 2009 16:23:44 +0000 (16:23 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 20 Jan 2010 13:48:29 +0000 (13:48 +0000)
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mm/fault-armv.c

index 074e6bb..7a8efe1 100644 (file)
@@ -73,16 +73,12 @@ static int adjust_pte(struct vm_area_struct *vma, unsigned long address)
        int ret;
 
        pgd = pgd_offset(vma->vm_mm, address);
-       if (pgd_none(*pgd))
-               goto no_pgd;
-       if (pgd_bad(*pgd))
-               goto bad_pgd;
+       if (pgd_none_or_clear_bad(pgd))
+               return 0;
 
        pmd = pmd_offset(pgd, address);
-       if (pmd_none(*pmd))
-               goto no_pmd;
-       if (pmd_bad(*pmd))
-               goto bad_pmd;
+       if (pmd_none_or_clear_bad(pmd))
+               return 0;
 
        pte = pte_offset_map(pmd, address);
 
@@ -91,18 +87,6 @@ static int adjust_pte(struct vm_area_struct *vma, unsigned long address)
        pte_unmap(pte);
 
        return ret;
-
-bad_pgd:
-       pgd_ERROR(*pgd);
-       pgd_clear(pgd);
-no_pgd:
-       return 0;
-
-bad_pmd:
-       pmd_ERROR(*pmd);
-       pmd_clear(pmd);
-no_pmd:
-       return 0;
 }
 
 static void