From: Greg KH <gregkh@suse.de>
To: Keiichiro Tokunaga <tokunaga.keiich@jp.fujitsu.com>
Cc: linux-kernel@vger.kernel.org, akpm@osdl.org
Subject: Re: [RFC/PATCH] unregister_node() for hotplug use
Date: Wed, 20 Apr 2005 10:32:35 -0700 [thread overview]
Message-ID: <20050420173235.GA17775@kroah.com> (raw)
In-Reply-To: <20050420210744.4013b3f8.tokunaga.keiich@jp.fujitsu.com>
On Wed, Apr 20, 2005 at 09:07:44PM +0900, Keiichiro Tokunaga wrote:
> This is to add a generic function 'unregister_node()'.
> It is used to remove objects of a node going away for
> hotplug. If CONFIG_HOTPLUG=y, it becomes available.
> This is against 2.6.12-rc2-mm3.
Please CC: this kind of stuff to the driver core maintainer, otherwise
it can get dropped...
Anyway, comments below:
> diff -puN drivers/base/node.c~numa_hp_base drivers/base/node.c
> --- linux-2.6.12-rc2-mm3/drivers/base/node.c~numa_hp_base 2005-04-14 20:49:37.000000000 +0900
> +++ linux-2.6.12-rc2-mm3-kei/drivers/base/node.c 2005-04-14 20:49:37.000000000 +0900
> @@ -136,7 +136,7 @@ static SYSDEV_ATTR(distance, S_IRUGO, no
> *
> * Initialize and register the node device.
> */
> -int __init register_node(struct node *node, int num, struct node *parent)
> +int __devinit register_node(struct node *node, int num, struct node *parent)
> {
> int error;
>
> @@ -145,6 +145,9 @@ int __init register_node(struct node *no
> error = sysdev_register(&node->sysdev);
>
> if (!error){
> + /*
> + * If you add new object here, delete it when unregistering.
> + */
Comment really isn't needed.
> +/*
> + * unregister_node - Remove objects of a node going away from sysfs.
> + * @node - node going away
> + *
> + * This is used only for hotplug.
> + */
If you are going to create function comments, at least use the proper
kerneldoc format.
> +#ifdef CONFIG_HOTPLUG
You don't provide function prototype for when CONFIG_HOTPLUG is not
enabled.
> +void unregister_node(struct node *node)
> +{
> + if (node == NULL)
> + return;
How can this happen?
> +
> + sysdev_remove_file(&node->sysdev, &attr_cpumap);
> + sysdev_remove_file(&node->sysdev, &attr_meminfo);
> + sysdev_remove_file(&node->sysdev, &attr_numastat);
> + sysdev_remove_file(&node->sysdev, &attr_distance);
> +
> + sysdev_unregister(&node->sysdev);
> +}
> +EXPORT_SYMBOL(register_node);
> +EXPORT_SYMBOL(unregister_node);
All of sysfs and the driver core are EXPORT_SYMBOL_GPL(). Please follow
that convention.
> +#endif /* CONFIG_HOTPLUG */
>
> -int __init register_node_type(void)
> +static int __init register_node_type(void)
Are you sure no one calls this?
> {
> return sysdev_class_register(&node_class);
> }
> diff -puN include/linux/node.h~numa_hp_base include/linux/node.h
> --- linux-2.6.12-rc2-mm3/include/linux/node.h~numa_hp_base 2005-04-14 20:49:37.000000000 +0900
> +++ linux-2.6.12-rc2-mm3-kei/include/linux/node.h 2005-04-14 20:49:37.000000000 +0900
> @@ -21,12 +21,16 @@
>
> #include <linux/sysdev.h>
> #include <linux/cpumask.h>
> +#include <linux/module.h>
Why?
>
> struct node {
> struct sys_device sysdev;
> };
>
> -extern int register_node(struct node *, int, struct node *);
> +extern int __devinit register_node(struct node *, int, struct node *);
__devinit is not needed on a function prototype.
> +#ifdef CONFIG_HOTPLUG
> +extern void unregister_node(struct node *node);
> +#endif
Not needed for a function prototype.
thanks,
greg k-h
next prev parent reply other threads:[~2005-04-20 17:35 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-20 12:07 [RFC/PATCH] unregister_node() for hotplug use Keiichiro Tokunaga
2005-04-20 12:35 ` Arjan van de Ven
2005-04-21 9:25 ` Keiichiro Tokunaga
2005-04-20 17:32 ` Greg KH [this message]
2005-04-21 15:30 ` Keiichiro Tokunaga
2005-04-22 0:39 ` Greg KH
2005-04-22 2:32 ` Keiichiro Tokunaga
2005-04-25 14:03 ` Keiichiro Tokunaga
2005-04-26 6:54 ` Greg KH
2005-04-28 0:17 ` Keiichiro Tokunaga
2005-05-07 12:11 ` Keiichiro Tokunaga
2005-05-08 0:26 ` Nathan Lynch
2005-05-08 12:28 ` Keiichiro Tokunaga
2005-05-09 22:44 ` Matthew Dobson
2005-05-10 11:20 ` Keiichiro Tokunaga
2005-05-10 18:15 ` Matthew Dobson
2005-05-10 18:45 ` Greg KH
2005-05-10 18:58 ` Matthew Dobson
2005-05-10 20:11 ` Greg KH
2005-05-10 20:13 ` Matthew Dobson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050420173235.GA17775@kroah.com \
--to=gregkh@suse.de \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tokunaga.keiich@jp.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.