From: Cornelia Huck Change function call order in device_bind_driver(). If we create symlinks (which might fail) before adding the device to the list we don't have to clean up afterwards (which we didn't). Signed-off-by: Cornelia Huck Cc: Greg KH Signed-off-by: Andrew Morton --- drivers/base/dd.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff -puN drivers/base/dd.c~driver-core-change-function-call-order-in drivers/base/dd.c --- a/drivers/base/dd.c~driver-core-change-function-call-order-in +++ a/drivers/base/dd.c @@ -86,8 +86,12 @@ static void driver_sysfs_remove(struct d */ 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 { _