This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / arch / i386 / mm / fault.c
index a509237..f714896 100644 (file)
@@ -112,7 +112,9 @@ static inline unsigned long get_segment_eip(struct pt_regs *regs,
        }
 
        /* Decode the code segment base from the descriptor */
-       base = get_desc_base((unsigned long *)desc);
+       base =   (desc[0] >> 16) |
+               ((desc[1] & 0xff) << 16) |
+                (desc[1] & 0xff000000);
 
        if (seg & (1<<2)) { 
                up(&current->mm->context.sem);
@@ -516,7 +518,6 @@ vmalloc_fault:
                int index = pgd_index(address);
                unsigned long pgd_paddr;
                pgd_t *pgd, *pgd_k;
-               pud_t *pud, *pud_k;
                pmd_t *pmd, *pmd_k;
                pte_t *pte_k;
 
@@ -529,17 +530,11 @@ vmalloc_fault:
 
                /*
                 * set_pgd(pgd, *pgd_k); here would be useless on PAE
-                * and redundant with the set_pmd() on non-PAE. As would
-                * set_pud.
+                * and redundant with the set_pmd() on non-PAE.
                 */
 
-               pud = pud_offset(pgd, address);
-               pud_k = pud_offset(pgd_k, address);
-               if (!pud_present(*pud_k))
-                       goto no_context;
-               
-               pmd = pmd_offset(pud, address);
-               pmd_k = pmd_offset(pud_k, address);
+               pmd = pmd_offset(pgd, address);
+               pmd_k = pmd_offset(pgd_k, address);
                if (!pmd_present(*pmd_k))
                        goto no_context;
                set_pmd(pmd, *pmd_k);