| From foo@baz Mon Nov 6 10:07:35 CET 2017 |
| From: Stefan Haberland <sth@linux.vnet.ibm.com> |
| Date: Sat, 7 Oct 2017 22:36:56 +0000 |
| Subject: s390/dasd: check for device error pointer within state change interrupts |
| |
| From: Stefan Haberland <sth@linux.vnet.ibm.com> |
| |
| |
| [ 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 | 7 +++++-- |
| 1 file changed, 5 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/s390/block/dasd.c |
| +++ b/drivers/s390/block/dasd.c |
| @@ -1704,8 +1704,11 @@ void dasd_int_handler(struct ccw_device |
| /* 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) |