]> git.hungrycats.org Git - linux/commitdiff
s390/dasd: check for device error pointer within state change interrupts
authorStefan Haberland <sth@linux.vnet.ibm.com>
Sat, 7 Oct 2017 22:36:56 +0000 (22:36 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 Nov 2017 09:08:37 +0000 (10:08 +0100)
[ Upstream commit 2202134e48a3b50320aeb9e3dd1186833e9d7e66 ]

Check if the device pointer is valid. Just a sanity check since we already
are in the int handler of the device.

Signed-off-by: Stefan Haberland <sth@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/s390/block/dasd.c

index 1de089019268e10279a4c88be7767cf11f21eb96..5ecd40884f015dc61fd591728fcacdfb78449581 100644 (file)
@@ -1704,8 +1704,11 @@ void dasd_int_handler(struct ccw_device *cdev, unsigned long intparm,
        /* check for for attention message */
        if (scsw_dstat(&irb->scsw) & DEV_STAT_ATTENTION) {
                device = dasd_device_from_cdev_locked(cdev);
-               device->discipline->check_attention(device, irb->esw.esw1.lpum);
-               dasd_put_device(device);
+               if (!IS_ERR(device)) {
+                       device->discipline->check_attention(device,
+                                                           irb->esw.esw1.lpum);
+                       dasd_put_device(device);
+               }
        }
 
        if (!cqr)