microblaze: use pgtable-nopmd instead of 4level-fixup
[linux-2.6-microblaze.git] / arch / microblaze / kernel / signal.c
index cdd4feb..c9125c3 100644 (file)
@@ -160,6 +160,9 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
        int err = 0, sig = ksig->sig;
        unsigned long address = 0;
 #ifdef CONFIG_MMU
+       pgd_t *pgdp;
+       p4d_t *p4dp;
+       pud_t *pudp;
        pmd_t *pmdp;
        pte_t *ptep;
 #endif
@@ -195,9 +198,10 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
 
        address = ((unsigned long)frame->tramp);
 #ifdef CONFIG_MMU
-       pmdp = pmd_offset(pud_offset(
-                       pgd_offset(current->mm, address),
-                                       address), address);
+       pgdp = pgd_offset(current->mm, address);
+       p4dp = p4d_offset(pgdp, address);
+       pudp = pud_offset(p4dp, address);
+       pmdp = pmd_offset(pudp, address);
 
        preempt_disable();
        ptep = pte_offset_map(pmdp, address);