[v2 PATCH] of/flattree: Fix unhandled OF_DT_NOP tag when unflattening the device tree

2010-03-19 Thread Grant Likely
From: Jason Gunthorpe jguntho...@obsidianresearch.com

NOPs within the property section are skipped, but NOPs between
OF_DT_END_NODE and OF_DT_BEGIN_NODE were not. My firmware NOPs out
entire nodes depending on various environment parameters.

of_scan_flat_dt already handles NOP more generally.

Signed-off-by: Jason Gunthorpe jguntho...@obsidianresearch.com
Signed-off-by: Grant Likely grant.lik...@secretlab.ca
---
v2 - adapted to new location of unflatten_dt_node().

Jason, please test against 2.6.34-rc1

 drivers/of/fdt.c |7 +--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index 406757a..dee4fb5 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -376,8 +376,11 @@ unsigned long __init unflatten_dt_node(unsigned long mem,
if (!np-type)
np-type = NULL;
}
-   while (tag == OF_DT_BEGIN_NODE) {
-   mem = unflatten_dt_node(mem, p, np, allnextpp, fpsize);
+   while (tag == OF_DT_BEGIN_NODE || tag == OF_DT_NOP) {
+   if (tag == OF_DT_NOP)
+   *p += 4;
+   else
+   mem = unflatten_dt_node(mem, p, np, allnextpp, fpsize);
tag = be32_to_cpup((__be32 *)(*p));
}
if (tag != OF_DT_END_NODE) {

___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev


Re: [v2 PATCH] of/flattree: Fix unhandled OF_DT_NOP tag when unflattening the device tree

2010-03-19 Thread David Gibson
On Fri, Mar 19, 2010 at 02:01:49PM -0600, Grant Likely wrote:
 From: Jason Gunthorpe jguntho...@obsidianresearch.com
 
 NOPs within the property section are skipped, but NOPs between
 OF_DT_END_NODE and OF_DT_BEGIN_NODE were not. My firmware NOPs out
 entire nodes depending on various environment parameters.
 
 of_scan_flat_dt already handles NOP more generally.

Fwiw, there's a test program in the libfdt/dtc tree called nopulate
which will liberally spread NOPs through a device tree blob (one
between every other tag), which might be useful for testing this

-- 
David Gibson| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
___
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev