On Mon, Apr 18, 2011 at 1:02 PM, Marcin Slusarz
<marcin.slusarz at gmail.com> wrote:
>
> It's some nasty corruption:

Looks like something wrote 0xffffffff to free'd memory.

Enabling DEBUG_PAGEALLOC *might* show where it happens.

>
> [ ? ?6.523867] 
> =============================================================================
> [ ? ?6.523916] BUG sysfs_dir_cache: Poison overwritten
> [ ? ?6.523949] 
> -----------------------------------------------------------------------------
> [ ? ?6.523950]
> [ ? ?6.524016] INFO: 0xffff8801bb47df4c-0xffff8801bb47df4f. First byte 0xff 
> instead of 0x6b
> [ ? ?6.524061] INFO: Slab 0xffffea00060f7b58 objects=22 used=21 
> fp=0xffff8801bb47df18 flags=0x80000000000000c1
> [ ? ?6.524110] INFO: Object 0xffff8801bb47df18 @offset=3864 fp=0x ? ? ? ? 
> ?(null)
> [ ? ?6.524111]
> [ ? ?6.524170] Bytes b4 0xffff8801bb47df08: ?00 00 00 00 00 00 00 00 5a 5a 5a 
> 5a 5a 5a 5a 5a ........ZZZZZZZZ
> [ ? ?6.524516] ? Object 0xffff8801bb47df18: ?6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 
> 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
> [ ? ?6.524862] ? Object 0xffff8801bb47df28: ?6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 
> 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
> [ ? ?6.525208] ? Object 0xffff8801bb47df38: ?6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 
> 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
> [ ? ?6.525556] ? Object 0xffff8801bb47df48: ?6b 6b 6b 6b ff ff ff ff 6b 6b 6b 
> 6b 6b 6b 6b 6b kkkk<FF><FF><FF><FF>kkkkkkkk

So here the 0xffffffff is pretty obvious.

> and in another boot:
>
> [ ? ?6.704786] BUG: unable to handle kernel paging request at ffffffffbc70b058

Here it is less obvious, but it was _probably_ a regular kernel
pointer of the type 0xffff8801bc70b058 before the high bits were
overwritten by a 0xffffffff.

So then sysfs_refresh_inode() follows that pointer, and crashes.

Just a guess, obviously, but it looks rather likely.

                         Linus

Reply via email to