Device Tree Corrupted after unflatten_device_tree()

Lixin Yao Lixin.Yao at HSTX.com
Wed Oct 21 03:10:06 EST 2009


I use a board with MPC866T and 2.6.28 Linux Kernel.  Occasionally, the
unflattened device is corrupted after "unflatten_device_tree()" which
causes crash of kernel when device tree is traversed later on.

I looked at the fixes in lib/lmb.c, arch/powerpc/mm, arch/powerpc/kernel
etc since 2.6.28 to 2.6.32-r4 (the most recent version) and could not
fix my problem.

I have had a hard time trying to determine the cause. 

arch/powerpc/kernel/setup_32.c
void __init setup_arch(char **cmdline_p)
{
	*cmdline_p = cmd_line;

	/* so udelay does something sensible, assume <= 1000 bogomips */
	loops_per_jiffy = 500000000 / HZ;

	unflatten_device_tree();
	/* UNFLATTENED DEVICE TREE IS CORRUPTED SOMETIMES HERE */
	check_for_initrd();

   	......
}

Any ideas?

Thanks.

Lixin Yao
Harris Startex Networks Inc.
RTP, NC, USA
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20091020/1220d9ba/attachment.htm>


More information about the Linuxppc-dev mailing list