[PATCH] Add vio_bus_type probe and remove methods
authorRussell King <rmk@arm.linux.org.uk>
Thu, 5 Jan 2006 14:36:47 +0000 (14:36 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 13 Jan 2006 19:26:07 +0000 (11:26 -0800)
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/powerpc/kernel/vio.c

index 13c41495fe06309e55311166eb8e8dfaa6c2b834..13c655ba2841aac42db44ddb6f2f76862eff8ffe 100644 (file)
@@ -76,7 +76,7 @@ static void vio_bus_shutdown(struct device *dev)
        struct vio_dev *viodev = to_vio_dev(dev);
        struct vio_driver *viodrv = to_vio_driver(dev->driver);
 
-       if (viodrv->shutdown)
+       if (dev->driver && viodrv->shutdown)
                viodrv->shutdown(viodev);
 }
 
@@ -91,9 +91,6 @@ int vio_register_driver(struct vio_driver *viodrv)
 
        /* fill in 'struct driver' fields */
        viodrv->driver.bus = &vio_bus_type;
-       viodrv->driver.probe = vio_bus_probe;
-       viodrv->driver.remove = vio_bus_remove;
-       viodrv->driver.shutdown = vio_bus_shutdown;
 
        return driver_register(&viodrv->driver);
 }
@@ -295,4 +292,7 @@ struct bus_type vio_bus_type = {
        .name = "vio",
        .uevent = vio_hotplug,
        .match = vio_bus_match,
+       .probe = vio_bus_probe,
+       .remove = vio_bus_remove,
+       .shutdown = vio_bus_shutdown,
 };