• Zachary Amsden's avatar
    [BLOCK] elevator init fixes · b8ea2cb5
    Zachary Amsden authored
    I got a panic in the elevator code, backtrace :
    
    Unable to handle kernel NULL pointer dereference at virtual address 00000060
    ..
    EIP is at elevator_put+0x0/0x30 (null elevator_type passed)
    ..
    elevator_init+0x38
    blk_init_queu_node+0xc9
    floppy_init+0xdb
    do_initcalls+0x23
    init+0x10a
    init+0x0
    
    Clearly if the kmalloc here fails, e->elevator_type is not yet set; this
    appears to be the correct fix, but I think I probably hit the second case
    due to a race condition.  Someone more familiar with the elevator code
    should look at this more closely until I can determine if I can reproduce.
    Signed-off-by: default avatarZachary Amsden <zach@vmware.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarJens Axboe <axboe@suse.de>
    b8ea2cb5
elevator.c 17.7 KB