Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
[deliverable/linux.git] / drivers / base / driver.c
index 3ec3896c83a659ac069a4d27a98f0bcdd193f78e..974e301a1ef07ae02064be5e003bc4ac034df5c7 100644 (file)
@@ -80,7 +80,7 @@ struct device *driver_find_device(struct device_driver *drv,
        struct klist_iter i;
        struct device *dev;
 
-       if (!drv)
+       if (!drv || !drv->p)
                return NULL;
 
        klist_iter_init_node(&drv->p->klist_devices, &i,
@@ -185,8 +185,12 @@ int driver_register(struct device_driver *drv)
        if (ret)
                return ret;
        ret = driver_add_groups(drv, drv->groups);
-       if (ret)
+       if (ret) {
                bus_remove_driver(drv);
+               return ret;
+       }
+       kobject_uevent(&drv->p->kobj, KOBJ_ADD);
+
        return ret;
 }
 EXPORT_SYMBOL_GPL(driver_register);
This page took 0.025517 seconds and 5 git commands to generate.