lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 25 Jan 2008 08:19:23 -0800
From:	Stephen Hemminger <shemminger@...ux-foundation.org>
To:	Greg Kroah-Hartman <gregkh@...e.de>
Cc:	linux-kernel@...r.kernel.org, Greg Kroah-Hartman <gregkh@...e.de>,
	Kay Sievers <kay.sievers@...y.org>
Subject: Re: [PATCH 108/196] Kobject: change net/bridge to use
 kobject_create_and_add

On Thu, 24 Jan 2008 23:32:17 -0800
Greg Kroah-Hartman <gregkh@...e.de> wrote:

> 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@...ux-foundation.org>
> Cc: Kay Sievers <kay.sievers@...y.org>
> Signed-off-by: Greg Kroah-Hartman <gregkh@...e.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;
>  }

Okay, but where is the new kobject freed?

-- 
Stephen Hemminger <stephen.hemminger@...tta.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ