lkml.org 
[lkml]   [2009]   [Dec]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: Badness at arch/powerpc/mm/pgtable.c:286
    From
    Date
    On Tue, 2009-12-08 at 19:14 +0200, kordex - wrote:
    > Hello,
    >
    > I turned some debuging options in order to trace rcutree problems but
    > after turning debugging on it began just to loop on this:
    >
    > http://xnet.fi/opt/pics/pgtable_badness.jpg
    > 1.5M pgtable_badness.jpg
    >
    > I am sorry that I could not produce full dmesg.
    >
    > Kernel config: http://xnet.fi/opt/apps/lkml-2.6.32-vanilla.debug.config.txt

    Thanks for your report.

    Does that patch fixes it ?

    powerpc/mm: Fix a WARN_ON() with CONFIG_DEBUG_PAGEALLOC and CONFIG_DEBUG_VM

    Set need to call __set_pte_at() and not set_pte_at() from __change_page_attr()
    since the later will perform checks with CONFIG_DEBUG_VM that aren't suitable
    to the way we override an existing PTE. (More specifically, it doesn't let
    you write over a present PTE).

    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ---

    Index: linux-work/arch/powerpc/mm/pgtable_32.c
    ===================================================================
    --- linux-work.orig/arch/powerpc/mm/pgtable_32.c 2009-12-09 18:06:14.000000000 +1100
    +++ linux-work/arch/powerpc/mm/pgtable_32.c 2009-12-09 18:06:16.000000000 +1100
    @@ -356,7 +356,7 @@ static int __change_page_attr(struct pag
    return 0;
    if (!get_pteptr(&init_mm, address, &kpte, &kpmd))
    return -EINVAL;
    - set_pte_at(&init_mm, address, kpte, mk_pte(page, prot));
    + __set_pte_at(&init_mm, address, kpte, mk_pte(page, prot));
    wmb();
    #ifdef CONFIG_PPC_STD_MMU
    flush_hash_pages(0, address, pmd_val(*kpmd), 1);



    \
     
     \ /
      Last update: 2009-12-09 08:11    [W:6.197 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site