X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fsparc64%2Fkernel%2Fsetup.c;h=0c9ce2bb5100a1710329b93c19c6108987cd1dac;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=51e762bcd1dc8a37bf9f1859cbf18129c3c3fb07;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/arch/sparc64/kernel/setup.c b/arch/sparc64/kernel/setup.c index 51e762bcd..0c9ce2bb5 100644 --- a/arch/sparc64/kernel/setup.c +++ b/arch/sparc64/kernel/setup.c @@ -151,6 +151,7 @@ int prom_callback(long *args) struct task_struct *p; struct mm_struct *mm = NULL; pgd_t *pgdp; + pud_t *pudp; pmd_t *pmdp; pte_t *ptep; @@ -166,7 +167,10 @@ int prom_callback(long *args) pgdp = pgd_offset(mm, va); if (pgd_none(*pgdp)) goto done; - pmdp = pmd_offset(pgdp, va); + pudp = pud_offset(pgdp, va); + if (pud_none(*pudp)) + goto done; + pmdp = pmd_offset(pudp, va); if (pmd_none(*pmdp)) goto done; @@ -208,6 +212,7 @@ int prom_callback(long *args) * vmalloc or prom_inherited mapping. */ pgd_t *pgdp; + pud_t *pudp; pmd_t *pmdp; pte_t *ptep; int error; @@ -221,7 +226,10 @@ int prom_callback(long *args) pgdp = pgd_offset_k(va); if (pgd_none(*pgdp)) goto done; - pmdp = pmd_offset(pgdp, va); + pudp = pud_offset(pgdp, va); + if (pud_none(*pudp)) + goto done; + pmdp = pmd_offset(pudp, va); if (pmd_none(*pmdp)) goto done;