diff --git a/drivers/base/dd.c b/drivers/base/dd.c index f7051374894774b2b1c81974ee8bb59ea4d7e685..b5bf243d9cd6a26afc47eabb2990cf2d4cf13884 100644 --- a/drivers/base/dd.c +++ b/drivers/base/dd.c @@ -86,8 +86,12 @@ static void driver_sysfs_remove(struct device *dev) */ int device_bind_driver(struct device *dev) { - driver_bound(dev); - return driver_sysfs_add(dev); + int ret; + + ret = driver_sysfs_add(dev); + if (!ret) + driver_bound(dev); + return ret; } struct stupid_thread_structure {