x86: avoid duplicate running of pud_offset and pmd_offset in one_md_table_init()
authorZhaolei <zhaolei@cn.fujitsu.com>
Fri, 31 Oct 2008 09:43:04 +0000 (17:43 +0800)
committerIngo Molnar <mingo@elte.hu>
Fri, 31 Oct 2008 10:03:17 +0000 (11:03 +0100)
Impact: simplify implementation, cleanup

If !(pgd_val(*pgd) & _PAGE_PRESENT) in PAE mode, we need not get value of
pmd_table again.

Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/mm/init_32.c

index 8396868e82c5637772f8d9fe81129731f87d2e24..7f8a2daa3fde58ff7e85b2880a0f501fb2a12932 100644 (file)
@@ -102,6 +102,8 @@ static pmd_t * __init one_md_table_init(pgd_t *pgd)
                set_pgd(pgd, __pgd(__pa(pmd_table) | _PAGE_PRESENT));
                pud = pud_offset(pgd, 0);
                BUG_ON(pmd_table != pmd_offset(pud, 0));
+
+               return pmd_table;
        }
 #endif
        pud = pud_offset(pgd, 0);