• Stefan Weinhuber's avatar
    [S390] dasd: fix bug in dasd initialization cleanup · e3c699b3
    Stefan Weinhuber authored
    The initialization of the dasd_eer code is one of the last steps of the
    dasd driver initialization. When initialization fails in one of the
    earlier steps, the dasd_exit function is called to clean up what has been
    done so far. So the dasd_eer_exit function may be called, although the
    dasd_eer_init function wasn't called before and dasd_eer_exit tries to
    unregister a misc device that wasn't registered, which results in a BUG.
    
    Make sure that dasd_eer_exit can be called without initialization. Use a
    dynamically allocated struct miscdevice instead of a static one, so we
    only try to unregister the device if it exists and was actually registered.
    Signed-off-by: default avatarStefan Weinhuber <wein@de.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    e3c699b3
dasd_eer.c 19.6 KB