This converts the code to use the new kobject functions, cleaning up the
logic in doing so.
Cc: Stephen Hemminger <shemminger@linux-foundation.org>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
        p->state = BR_STATE_DISABLED;
        br_stp_port_timer_init(p);
 
-       kobject_init(&p->kobj);
-       kobject_set_name(&p->kobj, SYSFS_BRIDGE_PORT_ATTR);
-       p->kobj.ktype = &brport_ktype;
-       p->kobj.parent = &(dev->dev.kobj);
-       p->kobj.kset = NULL;
-
        return p;
 }
 
        if (IS_ERR(p))
                return PTR_ERR(p);
 
-       err = kobject_add(&p->kobj);
+       err = kobject_init_and_add(&p->kobj, &brport_ktype, &(dev->dev.kobj),
+                                  SYSFS_BRIDGE_PORT_ATTR);
        if (err)
                goto err0;
 
        br_fdb_delete_by_port(br, p, 1);
 err1:
        kobject_del(&p->kobj);
+       return err;
 err0:
        kobject_put(&p->kobj);
        return err;