extern int cpu_dev_init(void);
 
 extern int bus_add_device(struct device *dev);
-extern void bus_attach_device(struct device *dev);
+extern void bus_probe_device(struct device *dev);
 extern void bus_remove_device(struct device *dev);
 
 extern int bus_add_driver(struct device_driver *drv);
 
  * bus_add_device - add device to bus
  * @dev: device being added
  *
+ * - Add device's bus attributes.
+ * - Create links to device's bus.
  * - Add the device to its bus's list of devices.
- * - Create link to device's bus.
  */
 int bus_add_device(struct device *dev)
 {
                error = make_deprecated_bus_links(dev);
                if (error)
                        goto out_deprecated;
+               klist_add_tail(&dev->p->knode_bus, &bus->p->klist_devices);
        }
        return 0;
 
 }
 
 /**
- * bus_attach_device - add device to bus
- * @dev: device tried to attach to a driver
+ * bus_probe_device - probe drivers for a new device
+ * @dev: device to probe
  *
- * - Add device to bus's list of devices.
- * - Try to attach to driver.
+ * - Automatically probe for a driver if the bus allows it.
  */
-void bus_attach_device(struct device *dev)
+void bus_probe_device(struct device *dev)
 {
        struct bus_type *bus = dev->bus;
-       int ret = 0;
+       int ret;
 
-       if (bus) {
-               if (bus->p->drivers_autoprobe)
-                       ret = device_attach(dev);
+       if (bus && bus->p->drivers_autoprobe) {
+               ret = device_attach(dev);
                WARN_ON(ret < 0);
-               if (ret >= 0)
-                       klist_add_tail(&dev->p->knode_bus,
-                                      &bus->p->klist_devices);
        }
 }
 
 
                                             BUS_NOTIFY_ADD_DEVICE, dev);
 
        kobject_uevent(&dev->kobj, KOBJ_ADD);
-       bus_attach_device(dev);
+       bus_probe_device(dev);
        if (parent)
                klist_add_tail(&dev->p->knode_parent,
                               &parent->p->klist_children);