• Stefan Haberland's avatar
    s390/dasd: fix panic during offline processing · c020d722
    Stefan Haberland authored
    A DASD device consists of the device itself and a discipline with a
    corresponding private structure. These fields are set up during online
    processing right after the device is created and before it is processed by
    the state machine and made available for I/O.
    During offline processing the discipline pointer and the private data gets
    freed within the state machine and without protection of the existing
    reference count. This might lead to a kernel panic because a function might
    have taken a device reference and accesses the discipline pointer and/or
    private data of the device while this is already freed.
    
    Fix by freeing the discipline pointer and the private data after ensuring
    that there is no reference to the device left.
    Reviewed-by: default avatarPeter Oberparleiter <oberpar@linux.vnet.ibm.com>
    Signed-off-by: default avatarStefan Haberland <sth@linux.vnet.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    c020d722
dasd.c 107 KB