• Martin Schwidefsky's avatar
    [S390] dasd deadlock after state change pending interrupt. · a00bfd71
    Martin Schwidefsky authored
    The dasd_device_from_cdev function is called from interrupt context
    to get the struct dasd_device associated with a ccw device. The
    driver_data of the ccw device points to the dasd_devmap structure
    which contains the pointer to the dasd_device structure. The lock
    that protects the dasd_devmap structure is acquire with out irqsave.
    To prevent the deadlock in dasd_device_from_cdev if it is called
    from interrupt context the dependency to the dasd_devmap structure
    needs to be removed. Let the driver_data of the ccw device point
    to the dasd_device structure directly and use the ccw device lock
    to protect the access.
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    a00bfd71
dasd.c 56.4 KB