__wake_up_common, kernel crash, mtd?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello All.  I am currently running into an issue and can not find a way to resolve it. 

 

I have two systems built around a AT91RM9200.  First, the ek board (evaluation kit), I can build the kernel, filesystem, and u-boot and everything works as it should.  System is stable and runs well.

 

Second system, I have a custom board that is very similar to the ek board but with some differences.  First, the flash is a 642D vs the 6416 and I have made the changes necessary for it to recognize through CFI.  Next, the ram is 1 32mb chip vs two 16 mb chips.  I have made the changes to SDRAM controller for that (rows and columns).  Finally, there is also a nand flash on board.  I have the nand flash being recognized and can read and write from it. 

 

So, onto the problem.  When I boot the custom board, it can find the filesystem on either the nor flash or the nand flash (I just change the bootargs in u-boot to point to a different mtdblock).  If I leave it at the login prompt, everything is ok.  When I login, it goes to the prompt and a few seconds later, the kernel crashes and looks to be in wake_up_common here:

 

static void __wake_up_common(wait_queue_head_t *q, unsigned int mode,

                                         int nr_exclusive, int sync, void *key)

{

            struct list_head *tmp, *next;

 

            list_for_each_safe(tmp, next, &q->task_list) {                   ß-------------------------------

                        wait_queue_t *curr = list_entry(tmp, wait_queue_t, task_list);

                        unsigned flags = curr->flags;

 

I am putting the capture below for anyone that can see.  I have done searches around google and some have said that it could be due to a mtd config issue.  However, I am setting up the mtd the same and have even taken out support for nand flash so that isn’t the culprit. 

 

Has anyone seen this or can anyone give me some ideas of a way to track this down?

 

 

uclibc login: root

# cd /bin

# [   40.180000] Unable to handle kernel NULL pointer dereference at virtual add

ress 00000000

[   40.180000] pgd = c1f14000

[   40.180000] [00000000] *pgd=21eda031, *pte=00000000, *ppte=00000000

[   40.180000] Internal error: Oops: 17 [#1]

[   40.180000] Modules linked in:

[   40.180000] CPU: 0

[   40.180000] PC is at __wake_up_common+0x28/0x98

[   40.180000] LR is at 0x0

[   40.180000] pc : [<c003bf88>]    lr : [<00000000>]    Not tainted

[   40.180000] sp : c1f2de50  ip : c1f2de7c  fp : c1f2de78

[   40.180000] r10: 00000003  r9 : c1f2de94  r8 : 00000000

[   40.180000] r7 : 00000001  r6 : c0000080  r5 : c1d802fc  r4 : 00000013

[   40.180000] r3 : 00000000  r2 : 00000001  r1 : 00000003  r0 : c0000080

[   40.180000] Flags: nzcv  IRQs off  FIQs on  Mode SVC_32  Segment user

[   40.180000] Control: C000717F

[   40.180000] Table: 21F14000  DAC: 00000015

[   40.180000] Process syslogd (pid: 737, stack limit = 0xc1f2c250)

[   40.180000] Stack: (0xc1f2de50 to 0xc1f2e000)

[   40.180000] de40:                                     00000013 c1d802fc c0324

000 00000000

[   40.180000] de60: c1c07ce4 c1c07c88 00000022 c1f2de90 c1f2de7c c003c024 c003b

f70 c1f2de94

[   40.180000] de80: c0324000 c1f2dea8 c1f2de94 c0054a18 c003c008 c0324000 00000

000 c1f2debc

[   40.180000] dea0: c1f2deac c0062258 c00549f8 c1f2c000 c1f2def8 c1f2dec0 c0078

ad0 c0062224

[   40.180000] dec0: 00000000 c1c07d78 00000003 c1f2df10 00000000 00000066 000b3

3cd 00000000

[   40.180000] dee0: 0000005d 00000000 c1f2df18 c1f2df4c c1f2defc c00793ec c0078

7ac 00000000

[   40.180000] df00: c1c07d20 c1c07d4c c1c07ce4 c1f2df78 00000000 00000066 00022

000 00000000

[   40.180000] df20: 00000000 c1e8a1a8 000b3370 c1f2df78 000000c3 c1f2c000 c1f2c

000 000000c3

[   40.180000] df40: c1f2df74 c1f2df50 c0080a58 c0079224 00000000 c1e8a1c8 c1e8a

1a8 c1f2df78

[   40.180000] df60: 00021fa3 00000000 c1f2dfa4 c1f2df78 c0080bf0 c00809b4 00021

fa3 00000000

[   40.180000] df80: 00000000 000000c3 000000c3 000b3370 00000004 c002af04 00000

000 c1f2dfa8

[   40.180000] dfa0: c002ad60 c0080bb4 000000c3 000000c3 00000004 000b3370 00000

0c3 00021fa3

[   40.180000] dfc0: 000000c3 000000c3 000b3370 00000004 000b3370 00000004 00000

0c3 beed3cac

[   40.180000] dfe0: 000ae328 beed3bd8 0003b558 4005ce0c 20000010 00000004 00000

000 00000000

[   40.180000] Backtrace:

[   40.180000] [<c003bf60>] (__wake_up_common+0x0/0x98) from [<c003c024>] (__wak

e_up+0x2c/0x34)

[   40.180000] [<c003bff8>] (__wake_up+0x0/0x34) from [<c0054a18>] (__wake_up_bi

t+0x30/0x38)

[   40.180000]  r4 = C0324000

[   40.180000] [<c00549e8>] (__wake_up_bit+0x0/0x38) from [<c0062258>] (unlock_p

age+0x44/0x5c)

[   40.180000] [<c0062214>] (unlock_page+0x0/0x5c) from [<c0078ad0>] (shmem_getp

age+0x334/0x458)

[   40.180000]  r4 = C1F2C000

[   40.180000] [<c007879c>] (shmem_getpage+0x0/0x458) from [<c00793ec>] (shmem_f

ile_write+0x1d8/0x250)

[   40.180000] [<c0079214>] (shmem_file_write+0x0/0x250) from [<c0080a58>] (vfs_

write+0xb4/0x184)

[   40.180000] [<c00809a4>] (vfs_write+0x0/0x184) from [<c0080bf0>] (sys_write+0

x4c/0x7c)

[   40.180000]  r8 = 00000000  r7 = 00021FA3  r6 = C1F2DF78  r5 = C1E8A1A8

[   40.180000]  r4 = C1E8A1C8

[   40.180000] [<c0080ba4>] (sys_write+0x0/0x7c) from [<c002ad60>] (ret_fast_sys

call+0x0/0x2c)

[   40.180000]  r8 = C002AF04  r7 = 00000004  r6 = 000B3370  r5 = 000000C3

[   40.180000]  r4 = 000000C3

[   40.180000] Code: e1a0a001 e1a07002 e1a08003 e59b9004 (e59e5000)


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux