[S390] cio: fix sanity checks in ccwgroup driver.
authorSebastian Ott <sebott@linux.vnet.ibm.com>
Thu, 26 Mar 2009 14:24:14 +0000 (15:24 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 26 Mar 2009 14:24:15 +0000 (15:24 +0100)
Some sanity checks in the ccw group driver test the output of
container_of macros to be !NULL. Test the input parameters instead.

Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/cio/ccwgroup.c

index ec2742813bf2ffd3177480b67bad6ffdbcb2ae98..2becedbe88830a48c99d959426b8c24f51ac8214 100644 (file)
@@ -454,13 +454,17 @@ ccwgroup_remove (struct device *dev)
        struct ccwgroup_device *gdev;
        struct ccwgroup_driver *gdrv;
 
+       device_remove_file(dev, &dev_attr_online);
+
+       if (!dev->driver)
+               return 0;
+
        gdev = to_ccwgroupdev(dev);
        gdrv = to_ccwgroupdrv(dev->driver);
 
-       device_remove_file(dev, &dev_attr_online);
-
-       if (gdrv && gdrv->remove)
+       if (gdrv->remove)
                gdrv->remove(gdev);
+
        return 0;
 }
 
@@ -469,9 +473,13 @@ static void ccwgroup_shutdown(struct device *dev)
        struct ccwgroup_device *gdev;
        struct ccwgroup_driver *gdrv;
 
+       if (!dev->driver)
+               return;
+
        gdev = to_ccwgroupdev(dev);
        gdrv = to_ccwgroupdrv(dev->driver);
-       if (gdrv && gdrv->shutdown)
+
+       if (gdrv->shutdown)
                gdrv->shutdown(gdev);
 }