aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Ott <sebott@linux.vnet.ibm.com>2016-08-19 13:57:49 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2016-09-20 08:26:32 -0400
commitf622b517563b0d3be6c41e932124e0b717149ad8 (patch)
treef4e6b40824f1ca63d790c6487dfd03395140941c
parenteed5c4b117d1f77553d517072584c4ac779af0ba (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.c9
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;