Commit 43968d2f1648f4dc92437dc0363a3e88377445b3

Authored by Greg Kroah-Hartman
1 parent 4ff6abff83

kobject: get rid of kobject_kset_add_dir

kobject_kset_add_dir is only called in one place so remove it and use
kobject_create() instead.

Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

Showing 3 changed files with 20 additions and 37 deletions Side-by-side Diff

... ... @@ -571,6 +571,8 @@
571 571 static struct kobject * get_device_parent(struct device *dev,
572 572 struct device *parent)
573 573 {
  574 + int retval;
  575 +
574 576 if (dev->class) {
575 577 struct kobject *kobj = NULL;
576 578 struct kobject *parent_kobj;
... ... @@ -600,8 +602,18 @@
600 602 return kobj;
601 603  
602 604 /* or create a new class-directory at the parent device */
603   - return kobject_kset_add_dir(&dev->class->class_dirs,
604   - parent_kobj, dev->class->name);
  605 + k = kobject_create();
  606 + if (!k)
  607 + return NULL;
  608 + k->kset = &dev->class->class_dirs;
  609 + retval = kobject_add_ng(k, parent_kobj, "%s", dev->class->name);
  610 + if (retval < 0) {
  611 + kobject_put(k);
  612 + return NULL;
  613 + }
  614 + /* Do not emit a uevent, as it's not needed for this
  615 + * "class glue" directory. */
  616 + return k;
605 617 }
606 618  
607 619 if (parent)
include/linux/kobject.h
... ... @@ -91,6 +91,7 @@
91 91  
92 92 extern void kobject_del(struct kobject *);
93 93  
  94 +extern struct kobject * __must_check kobject_create(void);
94 95 extern struct kobject * __must_check kobject_create_and_add(const char *name,
95 96 struct kobject *parent);
96 97  
... ... @@ -102,9 +103,6 @@
102 103  
103 104 extern struct kobject * kobject_get(struct kobject *);
104 105 extern void kobject_put(struct kobject *);
105   -
106   -extern struct kobject *kobject_kset_add_dir(struct kset *kset,
107   - struct kobject *, const char *);
108 106  
109 107 extern char * kobject_get_path(struct kobject *, gfp_t);
110 108  
... ... @@ -629,15 +629,18 @@
629 629 .release = dynamic_kobj_release,
630 630 };
631 631  
632   -/*
  632 +/**
633 633 * kobject_create - create a struct kobject dynamically
634 634 *
635 635 * This function creates a kobject structure dynamically and sets it up
636 636 * to be a "dynamic" kobject with a default release function set up.
637 637 *
638 638 * If the kobject was not able to be created, NULL will be returned.
  639 + * The kobject structure returned from here must be cleaned up with a
  640 + * call to kobject_put() and not kfree(), as kobject_init_ng() has
  641 + * already been called on this structure.
639 642 */
640   -static struct kobject *kobject_create(void)
  643 +struct kobject *kobject_create(void)
641 644 {
642 645 struct kobject *kobj;
643 646  
... ... @@ -681,36 +684,6 @@
681 684 return kobj;
682 685 }
683 686 EXPORT_SYMBOL_GPL(kobject_create_and_add);
684   -
685   -/**
686   - * kobject_kset_add_dir - add sub directory of object.
687   - * @kset: kset the directory is belongs to.
688   - * @parent: object in which a directory is created.
689   - * @name: directory name.
690   - *
691   - * Add a plain directory object as child of given object.
692   - */
693   -struct kobject *kobject_kset_add_dir(struct kset *kset,
694   - struct kobject *parent, const char *name)
695   -{
696   - struct kobject *k;
697   - int ret;
698   -
699   - k = kobject_create();
700   - if (!k)
701   - return NULL;
702   -
703   - k->kset = kset;
704   - ret = kobject_add_ng(k, parent, "%s", name);
705   - if (ret < 0) {
706   - printk(KERN_WARNING "%s: kobject_add error: %d\n",
707   - __func__, ret);
708   - kobject_put(k);
709   - k = NULL;
710   - }
711   -
712   - return k;
713   -}
714 687  
715 688 /**
716 689 * kset_init - initialize a kset for use