lkml.org 
[lkml]   [2005]   [Aug]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: 2.6.13-rc3-mm3
    Could you try the following patch? I think the problem was that higher 
    addressses were not mappable via the page fault handler. This patch
    inserts the pmd entry into the pgd as necessary if the pud level is
    folded.

    Signed-off-by: Christoph Lameter <christoph@lameter.com>

    Index: linux-2.6.13-rc4/mm/memory.c
    ===================================================================
    --- linux-2.6.13-rc4.orig/mm/memory.c 2005-08-03 17:08:29.000000000 -0700
    +++ linux-2.6.13-rc4/mm/memory.c 2005-08-03 17:15:22.000000000 -0700
    @@ -2144,9 +2144,16 @@
    */
    page_table_atomic_start(mm);
    pgd = pgd_offset(mm, address);
    -#ifndef __PAGETABLE_PUD_FOLDED
    if (unlikely(pgd_none(*pgd))) {
    +#ifdef __PAGETABLE_PUD_FOLDED
    + /* If the pud is folded then we need to insert a pmd entry into
    + * a pgd. pud_none(pgd) == 0 so the next if statement will never
    + * be taken
    + */
    + pmd_t *new;
    +#else
    pud_t *new;
    +#endif

    page_table_atomic_stop(mm);
    new = pud_alloc_one(mm, address);
    @@ -2158,7 +2165,6 @@
    if (!pgd_test_and_populate(mm, pgd, new))
    pud_free(new);
    }
    -#endif

    pud = pud_offset(pgd, address);
    if (unlikely(pud_none(*pud))) {
    Index: linux-2.6.13-rc4/include/asm-generic/4level-fixup.h
    ===================================================================
    --- linux-2.6.13-rc4.orig/include/asm-generic/4level-fixup.h 2005-08-03 17:06:01.000000000 -0700
    +++ linux-2.6.13-rc4/include/asm-generic/4level-fixup.h 2005-08-03 17:09:38.000000000 -0700
    @@ -27,6 +27,7 @@
    #define pud_ERROR(pud) do { } while (0)
    #define pud_clear(pud) pgd_clear(pud)
    #define pud_populate pgd_populate
    +#define pud_alloc_one pmd_alloc_one

    #undef pud_free_tlb
    #define pud_free_tlb(tlb, x) do { } while (0)
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2005-08-04 02:22    [W:5.782 / U:0.664 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site