lkml.org 
[lkml]   [2008]   [Jan]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 108/196] Kobject: change net/bridge to use kobject_create_and_add
    Date
    The kobject in the bridge code is only used for registering with sysfs,
    not for any lifespan rules. This patch changes it to be only a pointer
    and use the simpler api for this kind of thing.

    Cc: Stephen Hemminger <shemminger@linux-foundation.org>
    Cc: Kay Sievers <kay.sievers@vrfy.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    ---
    net/bridge/br_if.c | 2 +-
    net/bridge/br_private.h | 2 +-
    net/bridge/br_sysfs_br.c | 14 ++++----------
    net/bridge/br_sysfs_if.c | 2 +-
    4 files changed, 7 insertions(+), 13 deletions(-)

    diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
    index 935784f..dadec94 100644
    --- a/net/bridge/br_if.c
    +++ b/net/bridge/br_if.c
    @@ -133,7 +133,7 @@ static void del_nbp(struct net_bridge_port *p)
    struct net_bridge *br = p->br;
    struct net_device *dev = p->dev;

    - sysfs_remove_link(&br->ifobj, dev->name);
    + sysfs_remove_link(br->ifobj, dev->name);

    dev_set_promiscuity(dev, -1);

    diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
    index f666f7b..c11b554 100644
    --- a/net/bridge/br_private.h
    +++ b/net/bridge/br_private.h
    @@ -124,7 +124,7 @@ struct net_bridge
    struct timer_list tcn_timer;
    struct timer_list topology_change_timer;
    struct timer_list gc_timer;
    - struct kobject ifobj;
    + struct kobject *ifobj;
    };

    extern struct notifier_block br_device_notifier;
    diff --git a/net/bridge/br_sysfs_br.c b/net/bridge/br_sysfs_br.c
    index 3312e8f..4e7f91f 100644
    --- a/net/bridge/br_sysfs_br.c
    +++ b/net/bridge/br_sysfs_br.c
    @@ -426,16 +426,10 @@ int br_sysfs_addbr(struct net_device *dev)
    goto out2;
    }

    -
    - kobject_set_name(&br->ifobj, SYSFS_BRIDGE_PORT_SUBDIR);
    - br->ifobj.ktype = NULL;
    - br->ifobj.kset = NULL;
    - br->ifobj.parent = brobj;
    -
    - err = kobject_register(&br->ifobj);
    - if (err) {
    + br->ifobj = kobject_create_and_add(SYSFS_BRIDGE_PORT_SUBDIR, brobj);
    + if (!br->ifobj) {
    pr_info("%s: can't add kobject (directory) %s/%s\n",
    - __FUNCTION__, dev->name, kobject_name(&br->ifobj));
    + __FUNCTION__, dev->name, SYSFS_BRIDGE_PORT_SUBDIR);
    goto out3;
    }
    return 0;
    @@ -453,7 +447,7 @@ void br_sysfs_delbr(struct net_device *dev)
    struct kobject *kobj = &dev->dev.kobj;
    struct net_bridge *br = netdev_priv(dev);

    - kobject_unregister(&br->ifobj);
    + kobject_unregister(br->ifobj);
    sysfs_remove_bin_file(kobj, &bridge_forward);
    sysfs_remove_group(kobj, &bridge_group);
    }
    diff --git a/net/bridge/br_sysfs_if.c b/net/bridge/br_sysfs_if.c
    index 79db51f..02b2d50 100644
    --- a/net/bridge/br_sysfs_if.c
    +++ b/net/bridge/br_sysfs_if.c
    @@ -229,7 +229,7 @@ int br_sysfs_addif(struct net_bridge_port *p)
    goto out2;
    }

    - err= sysfs_create_link(&br->ifobj, &p->kobj, p->dev->name);
    + err = sysfs_create_link(br->ifobj, &p->kobj, p->dev->name);
    out2:
    return err;
    }
    --
    1.5.3.8


    \
     
     \ /
      Last update: 2008-01-25 09:01    [W:2.368 / U:0.092 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site