X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fbase%2Fcore.c;h=ee0a51a3a41d876451395b0f2a93b6a06a430394;hb=ffab6cf44e9058fe75a33aa86386b22e616a8f6f;hp=f861c2b1dcff11276569daa5967465d3bf955c7d;hpb=8882b39421bae317e3ee864edd845e994307ce16;p=linux-2.6 diff --git a/drivers/base/core.c b/drivers/base/core.c index f861c2b1dc..ee0a51a3a4 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -759,6 +759,22 @@ static void device_remove_class_symlinks(struct device *dev) sysfs_remove_link(&dev->kobj, "subsystem"); } +/** + * dev_set_name - set a device name + * @dev: device + * @fmt: format string for the device's name + */ +int dev_set_name(struct device *dev, const char *fmt, ...) +{ + va_list vargs; + + va_start(vargs, fmt); + vsnprintf(dev->bus_id, sizeof(dev->bus_id), fmt, vargs); + va_end(vargs); + return 0; +} +EXPORT_SYMBOL_GPL(dev_set_name); + /** * device_add - add device to device hierarchy. * @dev: device. @@ -1291,13 +1307,11 @@ int device_rename(struct device *dev, char *new_name) } #else if (dev->class) { - sysfs_remove_link(&dev->class->subsys.kobj, old_device_name); error = sysfs_create_link(&dev->class->subsys.kobj, &dev->kobj, dev->bus_id); - if (error) { - dev_err(dev, "%s: sysfs_create_symlink failed (%d)\n", - __func__, error); - } + if (error) + goto out; + sysfs_remove_link(&dev->class->subsys.kobj, old_device_name); } #endif