Skip to content
  • Ingo Molnar's avatar
    [PATCH] mm/slab.c: fix early init assumption · e0a42726
    Ingo Molnar authored
    
    
    The SLAB bootstrap code assumes that the first two kmalloc caches created
    (the INDEX_AC and INDEX_L3 kmalloc caches) wont be off-slab.  But due to AC
    and L3 structure size increase in lockdep, one of them ended up being
    off-slab, and subsequently crashing with:
    
    Unable to handle kernel NULL pointer dereference at 0000000000000000 RIP:
     [<ffffffff80267478>] kmem_cache_alloc+0x26/0x7d
    
    The fix is to introduce a bootstrap flag and to use it to prevent off-slab
    caches being created so early during bootup.
    
    (The calculation for off-slab caches is quite complex so i didnt want to
    complicate things with introducing yet another INDEX_ calculation, the flag
    approach is simpler and smaller.)
    
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    Cc: Manfred Spraul <manfred@colorfullife.com>
    Cc: Pekka Enberg <penberg@cs.helsinki.fi>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    e0a42726