Re: [PATCH 1/2] of: base: add helper to rename a node

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Marco,

On Mon, Feb 11, 2019 at 05:20:12PM +0100, Marco Felsch wrote:
> Sometimes it can be necessary to rename a node, e.g. to override/create
> a node which gets renamed upstream.
> 
> Signed-off-by: Marco Felsch <m.felsch@xxxxxxxxxxxxxx>
> ---
>  drivers/of/base.c | 18 ++++++++++++++++++
>  include/of.h      |  5 +++++
>  2 files changed, 23 insertions(+)
> 
> diff --git a/drivers/of/base.c b/drivers/of/base.c
> index b082f0c656..6644d9b96a 100644
> --- a/drivers/of/base.c
> +++ b/drivers/of/base.c
> @@ -2094,6 +2094,24 @@ void of_delete_node(struct device_node *node)
>  		of_set_root_node(NULL);
>  }
>  
> +void of_rename_node(struct device_node *node, char *name)

Should be const char * name.

> +{
> +	struct device_node *parent;
> +
> +	if (!node)
> +		return;
> +
> +	parent = node->parent;
> +	if (parent) {
> +		node->name = name;

node->name is an allocated string. It should be freed and then set to an
allocated string again.

> +		node->full_name = basprintf("%s/%s", parent->full_name, name);
> +	} else {
> +		/* root node */
> +		node->name = xstrdup("");
> +		node->full_name = xstrdup("");

I think we can drop the else path entirely. If we do not allow to give
the root node a name then we can assume that it doesn't have a name
right now, so nothing to do here.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox



[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux