diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
index cd938a26b76c2396632edd5196b295dcddc4c7e5..3b1cd0c96a74b85d53f218ec517fc3eb525b0524 100644
--- a/drivers/s390/cio/device.c
+++ b/drivers/s390/cio/device.c
@@ -1180,7 +1180,7 @@ static int io_subchannel_chp_event(struct subchannel *sch,
 			else
 				path_event[chpid] = PE_NONE;
 		}
-		if (cdev)
+		if (cdev && cdev->drv && cdev->drv->path_event)
 			cdev->drv->path_event(cdev, path_event);
 		break;
 	}