Commit a4ca6617421188f50774780cdc91c3782b7d08fe
Committed by
Greg Kroah-Hartman
1 parent
1cbfb7a5ac
Exists in
master
and in
39 other branches
kobject: do not copy vargs, just pass them around
This prevents a few unneeded copies. Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Showing 1 changed file with 8 additions and 20 deletions Side-by-side Diff
lib/kobject.c
... | ... | @@ -216,21 +216,12 @@ |
216 | 216 | static int kobject_set_name_vargs(struct kobject *kobj, const char *fmt, |
217 | 217 | va_list vargs) |
218 | 218 | { |
219 | - va_list aq; | |
220 | - char *name; | |
221 | - | |
222 | - va_copy(aq, vargs); | |
223 | - name = kvasprintf(GFP_KERNEL, fmt, vargs); | |
224 | - va_end(aq); | |
225 | - | |
226 | - if (!name) | |
227 | - return -ENOMEM; | |
228 | - | |
229 | 219 | /* Free the old name, if necessary. */ |
230 | 220 | kfree(kobj->name); |
231 | 221 | |
232 | - /* Now, set the new name */ | |
233 | - kobj->name = name; | |
222 | + kobj->name = kvasprintf(GFP_KERNEL, fmt, vargs); | |
223 | + if (!kobj->name) | |
224 | + return -ENOMEM; | |
234 | 225 | |
235 | 226 | return 0; |
236 | 227 | } |
237 | 228 | |
... | ... | @@ -246,12 +237,12 @@ |
246 | 237 | */ |
247 | 238 | int kobject_set_name(struct kobject *kobj, const char *fmt, ...) |
248 | 239 | { |
249 | - va_list args; | |
240 | + va_list vargs; | |
250 | 241 | int retval; |
251 | 242 | |
252 | - va_start(args, fmt); | |
253 | - retval = kobject_set_name_vargs(kobj, fmt, args); | |
254 | - va_end(args); | |
243 | + va_start(vargs, fmt); | |
244 | + retval = kobject_set_name_vargs(kobj, fmt, vargs); | |
245 | + va_end(vargs); | |
255 | 246 | |
256 | 247 | return retval; |
257 | 248 | } |
258 | 249 | |
... | ... | @@ -301,12 +292,9 @@ |
301 | 292 | static int kobject_add_varg(struct kobject *kobj, struct kobject *parent, |
302 | 293 | const char *fmt, va_list vargs) |
303 | 294 | { |
304 | - va_list aq; | |
305 | 295 | int retval; |
306 | 296 | |
307 | - va_copy(aq, vargs); | |
308 | - retval = kobject_set_name_vargs(kobj, fmt, aq); | |
309 | - va_end(aq); | |
297 | + retval = kobject_set_name_vargs(kobj, fmt, vargs); | |
310 | 298 | if (retval) { |
311 | 299 | printk(KERN_ERR "kobject: can not set name properly!\n"); |
312 | 300 | return retval; |