Commit a4ca6617421188f50774780cdc91c3782b7d08fe

Authored by Kay Sievers
Committed by Greg Kroah-Hartman
1 parent 1cbfb7a5ac

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

... ... @@ -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;