OSDN Git Service

s390/ccwgroup: simplify ungrouping when driver deregisters
authorJulian Wiedmann <jwi@linux.ibm.com>
Wed, 5 May 2021 08:25:14 +0000 (10:25 +0200)
committerVasily Gorbik <gor@linux.ibm.com>
Mon, 7 Jun 2021 15:07:00 +0000 (17:07 +0200)
driver_unregister() ends up calling __device_release_driver() for
each device that is bound to the driver. Thus ccwgroup_notifier() will
see a BUS_NOTIFY_UNBIND_DRIVER event for these ccwgroup devices, and
trigger the ungrouping.

So there's no need to also trigger the ungrouping from within
ccwgroup_driver_unregister(), remove it.

Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Reviewed-by: Vineeth Vijayan <vneethv@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
drivers/s390/cio/ccwgroup.c

index 49f816c..7e5ceea 100644 (file)
@@ -499,15 +499,6 @@ EXPORT_SYMBOL(ccwgroup_driver_register);
  */
 void ccwgroup_driver_unregister(struct ccwgroup_driver *cdriver)
 {
-       struct device *dev;
-
-       /* We don't want ccwgroup devices to live longer than their driver. */
-       while ((dev = driver_find_next_device(&cdriver->driver, NULL))) {
-               struct ccwgroup_device *gdev = to_ccwgroupdev(dev);
-
-               ccwgroup_ungroup(gdev);
-               put_device(dev);
-       }
        driver_unregister(&cdriver->driver);
 }
 EXPORT_SYMBOL(ccwgroup_driver_unregister);