]> err.no Git - linux-2.6/blobdiff - drivers/base/dd.c
[DRIVER MODEL] Add platform_driver
[linux-2.6] / drivers / base / dd.c
index 16323f9cbff08fb066f8d10cda4bb76cfe711564..3565e9795301d6d90a72ce2e433313a635df5c1c 100644 (file)
  */
 void device_bind_driver(struct device * dev)
 {
+       if (klist_node_attached(&dev->knode_driver))
+               return;
+
        pr_debug("bound device '%s' to driver '%s'\n",
                 dev->bus_id, dev->driver->name);
-       klist_add_tail(&dev->driver->klist_devices, &dev->knode_driver);
+       klist_add_tail(&dev->knode_driver, &dev->driver->klist_devices);
        sysfs_create_link(&dev->driver->kobj, &dev->kobj,
                          kobject_name(&dev->kobj));
        sysfs_create_link(&dev->kobj, &dev->driver->kobj, "driver");