aboutsummaryrefslogtreecommitdiff
path: root/lib/kobject.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-04-30 17:05:21 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-30 17:05:21 -0700
commit6de3d58dcfbab516dbe9aff36ea9542f40cd1bf2 (patch)
treefc5b83ef3a34b40c71e397ee7b1e6c423628e786 /lib/kobject.c
parente0066c4ea9ffa420cb79814411ff74fdc7b7d98e (diff)
parentc3bb7fadaf52de3637b834002dac27f6250b4b49 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6: klist: fix coding style errors in klist.h and klist.c driver core: remove no longer used "struct class_device" pcmcia: remove pccard_sysfs_interface warnings devres: support addresses greater than an unsigned long via dev_ioremap kobject: do not copy vargs, just pass them around sysfs: sysfs_update_group stub for CONFIG_SYSFS=n DEBUGFS: Correct location of debugfs API documentation. driver core: warn about duplicate driver names on the same bus klist: implement klist_add_{after|before}() klist: implement KLIST_INIT() and DEFINE_KLIST() sysfs: Disallow truncation of files in sysfs
Diffstat (limited to 'lib/kobject.c')
-rw-r--r--lib/kobject.c28
1 files changed, 8 insertions, 20 deletions
diff --git a/lib/kobject.c b/lib/kobject.c
index fd787403216..718e5101c26 100644
--- a/lib/kobject.c
+++ b/lib/kobject.c
@@ -216,21 +216,12 @@ static int kobject_add_internal(struct kobject *kobj)
static int kobject_set_name_vargs(struct kobject *kobj, const char *fmt,
va_list vargs)
{
- va_list aq;
- char *name;
-
- va_copy(aq, vargs);
- name = kvasprintf(GFP_KERNEL, fmt, vargs);
- va_end(aq);
-
- if (!name)
- return -ENOMEM;
-
/* Free the old name, if necessary. */
kfree(kobj->name);
- /* Now, set the new name */
- kobj->name = name;
+ kobj->name = kvasprintf(GFP_KERNEL, fmt, vargs);
+ if (!kobj->name)
+ return -ENOMEM;
return 0;
}
@@ -246,12 +237,12 @@ static int kobject_set_name_vargs(struct kobject *kobj, const char *fmt,
*/
int kobject_set_name(struct kobject *kobj, const char *fmt, ...)
{
- va_list args;
+ va_list vargs;
int retval;
- va_start(args, fmt);
- retval = kobject_set_name_vargs(kobj, fmt, args);
- va_end(args);
+ va_start(vargs, fmt);
+ retval = kobject_set_name_vargs(kobj, fmt, vargs);
+ va_end(vargs);
return retval;
}
@@ -301,12 +292,9 @@ EXPORT_SYMBOL(kobject_init);
static int kobject_add_varg(struct kobject *kobj, struct kobject *parent,
const char *fmt, va_list vargs)
{
- va_list aq;
int retval;
- va_copy(aq, vargs);
- retval = kobject_set_name_vargs(kobj, fmt, aq);
- va_end(aq);
+ retval = kobject_set_name_vargs(kobj, fmt, vargs);
if (retval) {
printk(KERN_ERR "kobject: can not set name properly!\n");
return retval;