Patchwork of/fdt: Don't copy garbage after "/" in root node path

login
register
mail settings
Submitter Benjamin Herrenschmidt
Date Oct. 22, 2012, 12:32 a.m.
Message ID <1350865950.2476.145.camel@pasglop>
Download mbox | patch
Permalink /patch/193069/
State Not Applicable
Headers show

Comments

Benjamin Herrenschmidt - Oct. 22, 2012, 12:32 a.m.
The root node path must be internally converted to "/", or various
pieces of code looking for it that way will fail. The code to do
that however had a bug where we might incorrectly append pieces
of the original path from the fdt to the "/".

We should probably add a proper dedicated accessor for the root node
but in the meantime this patch should fix it.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
 drivers/of/fdt.c |    1 +
 1 file changed, 1 insertion(+)
Rob Herring - Nov. 11, 2012, 3:54 a.m.
On 10/21/2012 07:32 PM, Benjamin Herrenschmidt wrote:
> The root node path must be internally converted to "/", or various
> pieces of code looking for it that way will fail. The code to do
> that however had a bug where we might incorrectly append pieces
> of the original path from the fdt to the "/".
> 
> We should probably add a proper dedicated accessor for the root node
> but in the meantime this patch should fix it.
> 
> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

Applied. Thanks.

Rob

> ---
>  drivers/of/fdt.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
> index 91a375f..c2b08dc 100644
> --- a/drivers/of/fdt.c
> +++ b/drivers/of/fdt.c
> @@ -186,6 +186,7 @@ static unsigned long unflatten_dt_node(struct boot_param_header *blob,
>  			 */
>  			fpsize = 1;
>  			allocl = 2;
> +			l = 0;
>  		} else {
>  			/* account for '/' and path size minus terminal 0
>  			 * already in 'l'
> 
> 
> _______________________________________________
> devicetree-discuss mailing list
> devicetree-discuss@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/devicetree-discuss
>

Patch

diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index 91a375f..c2b08dc 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -186,6 +186,7 @@  static unsigned long unflatten_dt_node(struct boot_param_header *blob,
 			 */
 			fpsize = 1;
 			allocl = 2;
+			l = 0;
 		} else {
 			/* account for '/' and path size minus terminal 0
 			 * already in 'l'