]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
powerpc/mm: flatten function __find_linux_pte() step 3
authorChristophe Leroy <christophe.leroy@c-s.fr>
Fri, 26 Apr 2019 05:59:53 +0000 (05:59 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 2 May 2019 15:20:24 +0000 (01:20 +1000)
__find_linux_pte() is full of if/else which is hard to
follow allthough the handling is pretty simple.

Previous patches left a { } block. This patch removes it.

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/mm/pgtable.c

index c1c6d0b79baa48e092aeb0af81ff7b69976f5e28..db4a6253df92a8713c406944dfda6c7affb09c63 100644 (file)
@@ -348,59 +348,59 @@ pte_t *__find_linux_pte(pgd_t *pgdir, unsigned long ea,
                hpdp = (hugepd_t *)&pgd;
                goto out_huge;
        }
-       {
-               /*
-                * Even if we end up with an unmap, the pgtable will not
-                * be freed, because we do an rcu free and here we are
-                * irq disabled
-                */
-               pdshift = PUD_SHIFT;
-               pudp = pud_offset(&pgd, ea);
-               pud  = READ_ONCE(*pudp);
 
-               if (pud_none(pud))
-                       return NULL;
+       /*
+        * Even if we end up with an unmap, the pgtable will not
+        * be freed, because we do an rcu free and here we are
+        * irq disabled
+        */
+       pdshift = PUD_SHIFT;
+       pudp = pud_offset(&pgd, ea);
+       pud  = READ_ONCE(*pudp);
 
-               if (pud_huge(pud)) {
-                       ret_pte = (pte_t *) pudp;
-                       goto out;
-               }
-               if (is_hugepd(__hugepd(pud_val(pud)))) {
-                       hpdp = (hugepd_t *)&pud;
-                       goto out_huge;
-               }
-               pdshift = PMD_SHIFT;
-               pmdp = pmd_offset(&pud, ea);
-               pmd  = READ_ONCE(*pmdp);
-               /*
-                * A hugepage collapse is captured by pmd_none, because
-                * it mark the pmd none and do a hpte invalidate.
-                */
-               if (pmd_none(pmd))
-                       return NULL;
-
-               if (pmd_trans_huge(pmd) || pmd_devmap(pmd)) {
-                       if (is_thp)
-                               *is_thp = true;
-                       ret_pte = (pte_t *)pmdp;
-                       goto out;
-               }
-               /*
-                * pmd_large check below will handle the swap pmd pte
-                * we need to do both the check because they are config
-                * dependent.
-                */
-               if (pmd_huge(pmd) || pmd_large(pmd)) {
-                       ret_pte = (pte_t *)pmdp;
-                       goto out;
-               }
-               if (is_hugepd(__hugepd(pmd_val(pmd)))) {
-                       hpdp = (hugepd_t *)&pmd;
-                       goto out_huge;
-               }
+       if (pud_none(pud))
+               return NULL;
 
-               return pte_offset_kernel(&pmd, ea);
+       if (pud_huge(pud)) {
+               ret_pte = (pte_t *)pudp;
+               goto out;
        }
+       if (is_hugepd(__hugepd(pud_val(pud)))) {
+               hpdp = (hugepd_t *)&pud;
+               goto out_huge;
+       }
+       pdshift = PMD_SHIFT;
+       pmdp = pmd_offset(&pud, ea);
+       pmd  = READ_ONCE(*pmdp);
+       /*
+        * A hugepage collapse is captured by pmd_none, because
+        * it mark the pmd none and do a hpte invalidate.
+        */
+       if (pmd_none(pmd))
+               return NULL;
+
+       if (pmd_trans_huge(pmd) || pmd_devmap(pmd)) {
+               if (is_thp)
+                       *is_thp = true;
+               ret_pte = (pte_t *)pmdp;
+               goto out;
+       }
+       /*
+        * pmd_large check below will handle the swap pmd pte
+        * we need to do both the check because they are config
+        * dependent.
+        */
+       if (pmd_huge(pmd) || pmd_large(pmd)) {
+               ret_pte = (pte_t *)pmdp;
+               goto out;
+       }
+       if (is_hugepd(__hugepd(pmd_val(pmd)))) {
+               hpdp = (hugepd_t *)&pmd;
+               goto out_huge;
+       }
+
+       return pte_offset_kernel(&pmd, ea);
+
 out_huge:
        if (!hpdp)
                return NULL;