lkml.org 
[lkml]   [2012]   [Jan]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [Problem] kernel hangs at boot (bisected 892d208bcf)
    On Thu, Jan 19, 2012 at 12:16:56PM +0000, Dirk Gouders wrote:
    > Catalin Marinas <catalin.marinas@arm.com> writes:
    > > On Wed, Jan 18, 2012 at 07:32:59PM +0000, Dirk Gouders wrote:
    > >> Freeing unused kernel memory: 608k freed
    > >> kernel tried to execute NX-protected page - exploit attempt? (uid: 0)
    > >> BUG: unable to handle kernel paging request at ffffffff818b232b
    > >> IP: [<ffffffff818b232b>] kmemleak_late_init+0x8a/0x8a
    ...
    > >> Code: cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc <cc> cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc
    > >> RIP [<ffffffff818b232b>] kmemleak_late_init+0x8a/0x8a
    > >
    > > I don't really see how kmemleak could cause such error (or any of the
    > > recent changes I have made). It looks like some of the code in the
    > > .init.text section is not executable.

    Ah, the interesting part - 0xcc is the poison value for freed initmem.
    And from the kernel logs you posted Linux frees the initmem and later
    calls kmemleak_late_init() which should have been in the .init.text
    section.

    The kmemleak_late_init() function is defined as:

    static int __init kmemleak_late_init(void)
    {
    ...
    }
    late_initcall(kmemleak_late_init);

    and it must *not* be called after the initmem has been freed. Was there
    any change in the x86 or generic code with regards to the freeing of the
    init memory?

    --
    Catalin


    \
     
     \ /
      Last update: 2012-01-19 15:03    [W:0.020 / U:58.552 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site