diff options
author | Sebastian Ott <sebott@linux.vnet.ibm.com> | 2016-08-19 13:57:49 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2016-09-20 08:26:32 -0400 |
commit | f622b517563b0d3be6c41e932124e0b717149ad8 (patch) | |
tree | f4e6b40824f1ca63d790c6487dfd03395140941c | |
parent | eed5c4b117d1f77553d517072584c4ac779af0ba (diff) |
s390/vmur: fix irq pointer dereference in int handler
"irq" in vmur's int handler can be an error pointer. Don't dereference
this pointer in that case.
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r-- | drivers/s390/char/vmur.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/s390/char/vmur.c b/drivers/s390/char/vmur.c index 6c30e93ab8fa..ff18f373af9a 100644 --- a/drivers/s390/char/vmur.c +++ b/drivers/s390/char/vmur.c | |||
@@ -306,10 +306,11 @@ static void ur_int_handler(struct ccw_device *cdev, unsigned long intparm, | |||
306 | { | 306 | { |
307 | struct urdev *urd; | 307 | struct urdev *urd; |
308 | 308 | ||
309 | TRACE("ur_int_handler: intparm=0x%lx cstat=%02x dstat=%02x res=%u\n", | 309 | if (!IS_ERR(irb)) { |
310 | intparm, irb->scsw.cmd.cstat, irb->scsw.cmd.dstat, | 310 | TRACE("ur_int_handler: intparm=0x%lx cstat=%02x dstat=%02x res=%u\n", |
311 | irb->scsw.cmd.count); | 311 | intparm, irb->scsw.cmd.cstat, irb->scsw.cmd.dstat, |
312 | 312 | irb->scsw.cmd.count); | |
313 | } | ||
313 | if (!intparm) { | 314 | if (!intparm) { |
314 | TRACE("ur_int_handler: unsolicited interrupt\n"); | 315 | TRACE("ur_int_handler: unsolicited interrupt\n"); |
315 | return; | 316 | return; |