<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7651.59">
<TITLE>Kernel Crash Around Device Tree Access</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=2 FACE="Arial">Hi,</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">I use 2.6.28 kernel for a board using processor MPC866T. The kernel startup occationally (1 out of 5 times) crashes at various init of device drivers. Sometimes, it happens on the init of cpm_uart driver, sometimes on other drivers. It always happens at of access of device tree like &quot;of_find_node_by_name&quot;, &quot;of_get_property&quot;, etc. A bad pointer to property name crashes the kernel. It appears the device tree got corrupted when it happens. I am having difficulty identifying the problem. Any insight will be helpful.</FONT></P>

<P><FONT SIZE=2 FACE="Arial">Note, once the kernel starts, it works fine. I tried to pull in fixes from 2.6.30 around prom and of area, and they don't help.</FONT></P>

<P><FONT SIZE=2 FACE="Arial">Following is a dump showing the problem:</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Filename 'eclipse/cuImage.eclipse_idu_8xx'.</FONT>

<BR><FONT SIZE=2 FACE="Arial">Load address: 0x200000</FONT>

<BR><FONT SIZE=2 FACE="Arial">Loading: #################################################################</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #################################################################</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #################################################################</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #################################################################</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ############</FONT>

<BR><FONT SIZE=2 FACE="Arial">done</FONT>

<BR><FONT SIZE=2 FACE="Arial">Bytes transferred = 1389443 (153383 hex)</FONT>

<BR><FONT SIZE=2 FACE="Arial">## Booting image at 00200000 ...</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp; Image Name:&nbsp;&nbsp; Linux-2.6.28-00015-g324a40e-dirt</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp; Image Type:&nbsp;&nbsp; PowerPC Linux Kernel Image (gzip compressed)</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp; Data Size:&nbsp;&nbsp;&nbsp; 1389379 Bytes =&nbsp; 1.3 MB</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp; Load Address: 00400000</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp; Entry Point:&nbsp; 00400598</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp; Verifying Checksum ... OK</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp; Uncompressing Kernel Image ... OK</FONT>

<BR><FONT SIZE=2 FACE="Arial">Using Eclipse IDU 8xx machine description</FONT>

<BR><FONT SIZE=2 FACE="Arial">Linux version 2.6.28-00015-g324a40e-dirty (lyao01@lyao01-desktop) (gcc version 4</FONT>

<BR><FONT SIZE=2 FACE="Arial">.2.2) #12 Wed Jun 10 17:59:17 EDT 2009</FONT>

<BR><FONT SIZE=2 FACE="Arial">Zone PFN ranges:</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; DMA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x00000000 -&gt; 0x00004000</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp; Normal&nbsp;&nbsp; 0x00004000 -&gt; 0x00004000</FONT>

<BR><FONT SIZE=2 FACE="Arial">Movable zone start PFN for each node</FONT>

<BR><FONT SIZE=2 FACE="Arial">early_node_map[1] active PFN ranges</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;&nbsp;&nbsp; 0: 0x00000000 -&gt; 0x00004000</FONT>

<BR><FONT SIZE=2 FACE="Arial">Built 1 zonelists in Zone order, mobility grouping on.&nbsp; Total pages: 16256</FONT>

<BR><FONT SIZE=2 FACE="Arial">Kernel command line: console=ttyCPM0,38400 root=/dev/nfs rw nfsroot=10.15.34.196</FONT>

<BR><FONT SIZE=2 FACE="Arial">:/home/lyao01/work/target_idu_xxx_2.6 ip=172.20.16.151:10.15.34.196:172.20.16.1:</FONT>

<BR><FONT SIZE=2 FACE="Arial">255.255.255.0:nccv2:eth0:off eclipse=nccv2 RSR=0xc0</FONT>

<BR><FONT SIZE=2 FACE="Arial">PID hash table entries: 256 (order: 8, 1024 bytes)</FONT>

<BR><FONT SIZE=2 FACE="Arial">Decrementer Frequency = 0x5f5e10</FONT>

<BR><FONT SIZE=2 FACE="Arial">clocksource: timebase mult[28000000] shift[22] registered</FONT>

<BR><FONT SIZE=2 FACE="Arial">STXN: drivers/serial/cpm_uart/cpm_uart_core.c, cpm_uart_console_init START</FONT>

<BR><FONT SIZE=2 FACE="Arial">console [ttyCPM0] enabled</FONT>

<BR><FONT SIZE=2 FACE="Arial">Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)</FONT>

<BR><FONT SIZE=2 FACE="Arial">Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)</FONT>

<BR><FONT SIZE=2 FACE="Arial">Memory: 61892k/65536k available (2688k kernel code, 3576k reserved, 96k data, 11</FONT>

<BR><FONT SIZE=2 FACE="Arial">2k bss, 116k init)</FONT>

<BR><FONT SIZE=2 FACE="Arial">SLUB: Genslabs=11, HWalign=16, Order=0-3, MinObjects=0, CPUs=1, Nodes=1</FONT>

<BR><FONT SIZE=2 FACE="Arial">Calibrating delay loop... 11.93 BogoMIPS (lpj=5968)</FONT>

<BR><FONT SIZE=2 FACE="Arial">Mount-cache hash table entries: 512</FONT>

<BR><FONT SIZE=2 FACE="Arial">net_namespace: 288 bytes</FONT>

<BR><FONT SIZE=2 FACE="Arial">NET: Registered protocol family 16</FONT>

<BR><FONT SIZE=2 FACE="Arial">Unable to handle kernel paging request for data at address 0x08000604</FONT>

<BR><FONT SIZE=2 FACE="Arial">Faulting instruction address: 0xc0129ab0</FONT>

<BR><FONT SIZE=2 FACE="Arial">Oops: Kernel access of bad area, sig: 11 [#1]</FONT>

<BR><FONT SIZE=2 FACE="Arial">Eclipse IDU 8xx</FONT>

<BR><FONT SIZE=2 FACE="Arial">Modules linked in:</FONT>

<BR><FONT SIZE=2 FACE="Arial">NIP: c0129ab0 LR: c018c6b4 CTR: c0287648</FONT>

<BR><FONT SIZE=2 FACE="Arial">REGS: c3817d50 TRAP: 0300&nbsp;&nbsp; Not tainted&nbsp; (2.6.28-00015-g324a40e-dirty)</FONT>

<BR><FONT SIZE=2 FACE="Arial">MSR: 00009032 &lt;EE,ME,IR,DR&gt;&nbsp; CR: 22004044&nbsp; XER: 0000005f</FONT>

<BR><FONT SIZE=2 FACE="Arial">DAR: 08000604, DSISR: c0000000</FONT>

<BR><FONT SIZE=2 FACE="Arial">TASK = c3818000[1] 'swapper' THREAD: c3816000</FONT>

<BR><FONT SIZE=2 FACE="Arial">GPR00: 08000604 c3817e00 c3818000 08000604 c024cfbc c3800648 00000002 c02e2780</FONT>

<BR><FONT SIZE=2 FACE="Arial">GPR08: 00000000 c02b0000 c02b003c 08000604 84004048 02000000 03ffb200 03ffaf20</FONT>

<BR><FONT SIZE=2 FACE="Arial">GPR16: 00000000 ffffffff 03fb2b80 00000001 03fff814 007ffeb0 007fff00 00800000</FONT>

<BR><FONT SIZE=2 FACE="Arial">GPR24: 00000ef9 00000000 00000000 c024cfbc c02bf324 00000000 c024cfbc c3ffeb10</FONT>

<BR><FONT SIZE=2 FACE="Arial">NIP [c0129ab0] strcasecmp+0xc/0x64</FONT>

<BR><FONT SIZE=2 FACE="Arial">LR [c018c6b4] of_find_node_by_name+0x40/0x98</FONT>

<BR><FONT SIZE=2 FACE="Arial">Call Trace:</FONT>

<BR><FONT SIZE=2 FACE="Arial">[c3817e00] [0000005f] 0x5f (unreliable)</FONT>

<BR><FONT SIZE=2 FACE="Arial">[c3817e20] [c02876a4] of_add_fixed_phys+0x5c/0x118</FONT>

<BR><FONT SIZE=2 FACE="Arial">[c3817e60] [c00021ec] do_one_initcall+0x38/0x1a4</FONT>

<BR><FONT SIZE=2 FACE="Arial">[c3817fd0] [c0283168] kernel_init+0x88/0xf4</FONT>

<BR><FONT SIZE=2 FACE="Arial">[c3817ff0] [c000da9c] kernel_thread+0x4c/0x68</FONT>

<BR><FONT SIZE=2 FACE="Arial">Instruction dump:</FONT>

<BR><FONT SIZE=2 FACE="Arial">4200ffa8 7c635850 4e800020 7c635850 4e800020 7c6300d0 4e800020 7d635b78</FONT>

<BR><FONT SIZE=2 FACE="Arial">4e800020 3d20c02b 7c6b1b78 3949003c &lt;880b0000&gt; 396b0001 7c030378 7d2a18ae</FONT>

<BR><FONT SIZE=2 FACE="Arial">---[ end trace 31fd0ba7d8756001 ]---</FONT>

<BR><FONT SIZE=2 FACE="Arial">Kernel panic - not syncing: Attempted to kill init!</FONT>
</P>
<BR>
<BR>

<P><FONT SIZE=2 FACE="Arial">Thanks.</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Lixin Yao</FONT>

<BR><FONT SIZE=2 FACE="Arial">Harris Stratex Networks Inc.</FONT>

<BR><FONT SIZE=2 FACE="Arial">RTP, NC, USA</FONT>
</P>

</BODY>
</HTML>