• C
    slab: Handle ARCH_DMA_MINALIGN correctly · c601fd69
    Christoph Lameter 提交于
    James Hogan hit boot problems in next-20130204 on Meta:
    
      META213-Thread0 DSP [LogF] kobject (4fc03980): tried to init an initialized object, something is seriously wrong.
      META213-Thread0 DSP [LogF]
      META213-Thread0 DSP [LogF] Call trace:
      META213-Thread0 DSP [LogF] [<4000888c>] _show_stack+0x68/0x7c
      META213-Thread0 DSP [LogF] [<400088b4>] _dump_stack+0x14/0x28
      META213-Thread0 DSP [LogF] [<40103794>] _kobject_init+0x58/0x9c
      META213-Thread0 DSP [LogF] [<40103810>] _kobject_create+0x38/0x64
      META213-Thread0 DSP [LogF] [<40103eac>] _kobject_create_and_add+0x14/0x8c
      META213-Thread0 DSP [LogF] [<40190ac4>] _mnt_init+0xd8/0x220
      META213-Thread0 DSP [LogF] [<40190508>] _vfs_caches_init+0xb0/0x160
      META213-Thread0 DSP [LogF] [<401851f4>] _start_kernel+0x274/0x340
      META213-Thread0 DSP [LogF] [<40188424>] _metag_start_kernel+0x58/0x6c
      META213-Thread0 DSP [LogF] [<40000044>] __start+0x44/0x48
      META213-Thread0 DSP [LogF]
      META213-Thread0 DSP [LogF] devtmpfs: initialized
      META213-Thread0 DSP [LogF] L2 Cache: Not present
      META213-Thread0 DSP [LogF] BUG: failure at fs/sysfs/dir.c:736/sysfs_read_ns_type()!
      META213-Thread0 DSP [LogF] Kernel panic - not syncing: BUG!
      META213-Thread0 DSP [Thread Exit] Thread has exited - return code = 4294967295
    
    And bisected the problem to commit 95a05b42 ("slab: Common constants for
    kmalloc boundaries").
    
    As it turns out, a fixed KMALLOC_SHIFT_LOW does not work for arches with
    higher alignment requirements.
    
    Determine KMALLOC_SHIFT_LOW from ARCH_DMA_MINALIGN instead.
    Reported-and-tested-by: NJames Hogan <james.hogan@imgtec.com>
    Signed-off-by: NChristoph Lameter <cl@linux.com>
    Signed-off-by: NPekka Enberg <penberg@kernel.org>
    c601fd69
slab.h 16.8 KB