[Yaffs] Oops in linux-3.0

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Peter Barada
Date:  
To: yaffs@lists.aleph1.co.uk, peter.barada
Subject: [Yaffs] Oops in linux-3.0
I have a colleague who's tripped up using Yaffs in Android. He's
getting an oops:

1. I erase and flash the NAND with u-boot.bin, boot.img, system.img, userdata.img, etc.
2. Once the flash is done, I boot into Kernel from NAND.
3. The first (cold) boot works just fine. It boots all the way up to Android.
4. I power cycle and reboot from NAND.
5. Console runs, and continues to initialize other parts of the system. Then the Kernel panic occurs.

The kernel panic occurs at "yaffs_get_equivalent_obj" and here is a part of the Kernel panic log:


[   37.996887] Unable to handle kernel NULL pointer dereference at virtual address 00000044
[   38.005493] pgd = cc320000
[   38.008331] [00000044] *pgd=8c0bd031, *pte=00000000, *ppte=00000000
[   38.014953] Internal error: Oops: 17 [#1]
[   38.019165] last sysfs file: /sys/power/wait_for_fb_sleep
[   38.024810] Modules linked in: omaplfb pvrsrvkm
[   38.029571] CPU: 0    Not tainted  (2.6.37 #11)
[   38.034362] PC is at yaffs_get_equivalent_obj+0x14/0x34
[   38.039825] LR is at yaffs_get_obj_inode+0x18/0x24
[   38.044860] pc : [<c01f230c>]    lr : [<c01f23f4>]    psr: a0000013
[   38.044860] sp : cc2eddc8  ip : cc2edde0  fp : cc2edddc
[   38.056884] r10: cc2ede20  r9 : 00000003  r8 : 00000003
[   38.062347] r7 : cc39e840  r6 : c010b658  r5 : ffffffe0  r4 : ffffffe0
[   38.069183] r3 : ffffffe0  r2 : cc058258  r1 : 0002b598  r0 : ffffffe0
[   38.076049] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[   38.083526] Control: 10c5387d  Table: 8c320019  DAC: 00000015
==========================================================================


Here's more of the backtrace:

[ 38.915466] Backtrace:
[ 38.918060] [<c01f22f8>] (yaffs_get_equivalent_obj+0x0/0x34) from [<c01f23f4>] (yaffs_get_obj_inode+0x18/0x24)
[ 38.928527] r5:ffffffe0 r4:c90c4340
[ 38.932312] [<c01f23dc>] (yaffs_get_obj_inode+0x0/0x24) from [<c01efa6c>] (yaffs_readdir+0x2f8/0x49c)
[ 38.941986] [<c01ef774>] (yaffs_readdir+0x0/0x49c) from [<c010ba38>] (vfs_readdir+0x84/0xb8)
[ 38.950836] [<c010b9b4>] (vfs_readdir+0x0/0xb8) from [<c010bad8>] (sys_getdents64+0x6c/0xbc)
[ 38.959716] [<c010ba6c>] (sys_getdents64+0x0/0xbc) from [<c00490c0>] (ret_fast_syscall+0x0/0x30)
[ 38.968902] r7:000000d9 r6:59cc39d8 r5:00203dd0 r4:00203dc0
[ 38.974853] Code: e92dd830 e24cb004 e2504000 0a000005 (e5943064)
[ 38.981353] ---[ end trace 912a238be2663785 ]---


I seem to remember comments on a patch to handle something along these
lines recently, but I can't find the email thread and the mailing list
archive doesn't look to have anything newer than late July. Google
doesn't shed any light on things either. The YAFFS code we're running
was pulled from yaffs.net back on 2011-08-06 (needed to get it to
build/run in linux-3.x kernels).

Any help/suggestions are appreciated!

--
Peter Barada