Hi, The bug below is caused by the ethernet driver I'm working on. The program counter, and the link register (i.e. keeps the address to return to, from a function) are illegal. It seems something goes wrong during the calling of the waitqueue function. The driver itself doesn't use any waitqueues. Looks like it is a wakeup() called from net_rx_action(). But I don't see why ethernet the driver itself would cause a corrupt return address in a wakeup call, since it only touches skb buffers and merely calls netif_rx from a tasklet. Any suggestions? Thanks, Bahadir ~ # ifconfig Unable to handle kernel paging request at virtual address 81e0a400 pgd = c79bc000 [81e0a400] *pgd=00000000 Internal error: Oops: 5 [#1] Modules linked in: simp911x CPU: 0 PC is at __wake_up_common+0x28/0x7c LR is at 0x81e0a400 pc : [<c002d830>] lr : [<81e0a400>] Not tainted sp : c793f9b0 ip : c793f9dc fp : c793f9d8 r10: 00000003 r9 : c793f9f4 r8 : 00000000 r7 : c793fa34 r6 : c000dd90 r5 : c0000000 r4 : 00000001 r3 : 00000000 r2 : 00000001 r1 : 00000003 r0 : c0000000 Flags: Nzcv IRQs off FIQs on Mode SVC_32 Segment user Control: 5317F Table: 079BC000 DAC: 00000015 Process ash (pid: 242, stack limit = 0xc793e194) Stack: (0xc793f9b0 to 0xc7940000) f9a0: 80000013 00000000 c000dd90 c793fa34 f9c0: c7ced800 c793fa2c 00000000 c793f9f0 c793f9dc c002d8b0 c002d818 c793f9f4 f9e0: c000de1c c793fa08 c793f9f4 c0045bdc c002d894 c000de1c 00000000 c793fa20 fa00: c793fa0c c0045c08 c0045bb4 c000de88 00000000 c793faec c793fa24 c00ae794 fa20: c0045bf4 c793fa40 c7e01da0 00000000 00000000 c7930002 c793fa44 c003ce70 fa40: c003abe0 c7ce8500 00000000 00000000 00000001 000081ed 00000001 00000000 fa60: 00000000 00018764 00000000 00020000 000000c8 ffffffff 00000811 00000000 fa80: c7e12130 c7e12174 0002ae60 00000000 00000000 00000000 00000000 00000000 faa0: 4396f4ce 00000000 00000000 c793fad0 c793fabc c0045c08 c0045bb4 c7e12130 fac0: ffffa340 c7e1226c c7c9e5e0 c7e12364 c000de88 c793fe14 c7c9e3c0 00000000 fae0: c793fc2c c793faf0 c00aab10 c00ae558 c0050e10 c7ce8500 c793fb1c c793fb08 fb00: 00000005 0000a1ff 00000001 00000000 00000000 0000000b 00000000 00020000 fb20: 00000000 ffffffff 00000811 00000000 00000000 00000000 0002af38 00000000 fb40: 4396f4cf 00000000 4396f4cf 00000000 4396f4cf 00000000 c7ced800 00000000 fb60: c793fbcc c78266f4 c78267ec c7826830 ffffa340 c7e1226c c793fb9c c793fb88 fb80: c0080e40 c00d8068 c7e1226c c7c9e4d0 c793fcdc c793fba0 c00aabb0 c0080e28 fba0: c0045bb4 c78267ec 00000000 c793fc84 c793fbbc c00ae794 c0045bf4 c793fbf8 fbc0: c7e01da0 00000000 00000000 c0030002 60000013 ffffffff c01fa234 c793fc7c fbe0: c793e000 c01fa260 00000001 c793fc10 c793fc2c c793fc00 c0081ee8 c00db9d4 fc00: c7c9e5e0 00000000 c7c9e5e0 c7e12364 c793fcac c793fe14 c793fc74 c793fc6c fc20: c793fc5c c793fc30 c0076ba0 c00aa93c c03542a0 00000000 c793fe14 c7e12364 fc40: c793fcac c7c9e4d0 c793fc6c 00000000 c793fca8 c793fc60 c0077684 c0076a08 fc60: c7826828 00000000 00000001 00000000 00000001 41fd8c82 0000000b c7e1f000 fc80: 00000000 c793fe14 c7e1f000 c793fcac c7c9e4d0 c793fd1c 00000000 c793fd0c fca0: c793fcac c0077c40 c0076d64 c7c9e3c0 c03542a0 c793fe50 c793fe2c c0068740 fcc0: 00000101 00000001 00000001 c793fe54 c7e1f000 00000000 00000002 c793fe74 fce0: c793fe54 00000001 00000000 c039b320 00000000 c793fe14 c793e000 c7e1f000 fd00: c793fd58 c793fd10 c0077920 c0077bc0 c03103e0 c7e02c80 00000101 c03542a0 fd20: c7c9e4d0 e25dbf22 0000000d c7e02c85 c793e000 c793fe14 c7e02c80 c793fd5c fd40: 00000000 00000000 00000002 c793fdbc c793fd5c c0077c40 c0076d64 c7ca3dd8 fd60: c03542a0 c793fe50 c793fe2c c0068740 00000101 00000001 00000000 c793fe54 fd80: fffffff4 00000000 00000002 c793fe74 c793fe54 00000001 00000000 c039b320 fda0: c793e000 c793fe14 00000000 c7e02c80 c793fddc c793fdc0 c0077ee8 c0077bc0 fdc0: 00000001 c7e02c80 c793fe14 00000001 c793fdfc c793fde0 c0077ff0 c0077d24 fde0: c793e000 c7ce0700 c01f8e0c c793fe14 c793fe10 c793fe00 c0078050 c0077fb0 fe00: 00000000 c793fe74 c793fe14 c0073764 c0078044 c7c9e3c0 c03542a0 c793fe50 fe20: c793fe2c c0068740 00000101 00000001 00000001 c793fe54 c7e1f000 00000000 fe40: 00000002 c793fe74 c793fe54 00000001 00000000 c039b320 c793e000 c7ce0700 fe60: c01f8e0c fffffff8 c793ff34 c793fe78 c0093700 c0073750 c00521c4 c0051b54 fe80: 00000044 c7fffaa0 00000000 60000013 00000000 00000000 c01be05c 00000044 fea0: 000200d2 c01be05c 00000fed c7ce06e0 c7ce07a0 00000000 00000000 00000000 fec0: 00000000 ffffffff c0052340 00000003 00000000 00000000 00000000 c7e02c80 fee0: 00000000 00000000 00000000 c793ffb0 c7870400 00000000 0000002e 0000002e ff00: 0004e420 00000002 0001fe95 c01bf208 c7870400 fffffffe c793e000 00000000 ff20: c793e000 c793ffb0 c793ff5c c793ff38 c00743bc c009339c c7870400 c7fed000 ff40: 00000000 00042a5c 00042a54 c793ffb0 c793ff84 c793ff60 c0074630 c0074330 ff60: c7fed000 00042a5c c793ffb0 c7fed000 c001aee4 4014d254 c793ffa4 c793ff88 ff80: c001f438 c0074508 00042a5c 00042a54 00042a9c 0000000b 00000000 c793ffa8 ffa0: c001ad60 c001f40c 00042a5c 00042a54 00042a9c 00042a54 00042a5c 00000000 ffc0: 00042a5c 00042a54 00042a9c 00042a9c 00042a5c 00000000 4014d254 00000000 ffe0: 400cdf0c bef77aec 0000b5e8 400cdf48 60000010 00042a9c 00002031 00002431 Backtrace: [<c002d808>] (__wake_up_common+0x0/0x7c) from [<c002d8b0>] (__wake_up+0x2c/0x34) [<c002d884>] (__wake_up+0x0/0x34) from [<c0045bdc>] (__wake_up_bit+0x38/0x40) r4 = C000DE1C [<c0045ba4>] (__wake_up_bit+0x0/0x40) from [<c0045c08>] (wake_up_bit+0x24/0x28) [<c0045be4>] (wake_up_bit+0x0/0x28) from [<c00ae794>] (__nfs_revalidate_inode+0x24c/0x270) r5 = 00000000 r4 = C000DE88 [<c00ae548>] (__nfs_revalidate_inode+0x0/0x270) from [<c00aab10>] (nfs_lookup_revalidate+0x1e4/0x344 ) [<c00aa92c>] (nfs_lookup_revalidate+0x0/0x344) from [<c0076ba0>] (do_lookup+0x1a8/0x1cc) [<c00769f8>] (do_lookup+0x0/0x1cc) from [<c0077684>] (__link_path_walk+0x930/0xe5c) [<c0076d54>] (__link_path_walk+0x0/0xe5c) from [<c0077c40>] (link_path_walk+0x90/0x164) [<c0077bb0>] (link_path_walk+0x0/0x164) from [<c0077920>] (__link_path_walk+0xbcc/0xe5c) r7 = C7E1F000 r6 = C793E000 r5 = C793FE14 r4 = 00000000 [<c0076d54>] (__link_path_walk+0x0/0xe5c) from [<c0077c40>] (link_path_walk+0x90/0x164) [<c0077bb0>] (link_path_walk+0x0/0x164) from [<c0077ee8>] (path_lookup+0x1d4/0x1e8) r7 = C7E02C80 r6 = 00000000 r5 = C793FE14 r4 = C793E000 [<c0077d14>] (path_lookup+0x0/0x1e8) from [<c0077ff0>] (__path_lookup_intent_open+0x50/0x94) r7 = 00000001 r6 = C793FE14 r5 = C7E02C80 r4 = 00000001 [<c0077fa0>] (__path_lookup_intent_open+0x0/0x94) from [<c0078050>] (path_lookup_open+0x1c/0x20) r7 = C793FE14 r6 = C01F8E0C r5 = C7CE0700 r4 = C793E000 [<c0078034>] (path_lookup_open+0x0/0x20) from [<c0073764>] (open_exec+0x24/0xe0) [<c0073740>] (open_exec+0x0/0xe0) from [<c0093700>] (load_elf_binary+0x374/0x16a0) r7 = FFFFFFF8 r6 = C01F8E0C r5 = C7CE0700 r4 = C793E000 [<c009338c>] (load_elf_binary+0x0/0x16a0) from [<c00743bc>] (search_binary_handler+0x9c/0x1d8) [<c0074320>] (search_binary_handler+0x0/0x1d8) from [<c0074630>] (do_execve+0x138/0x1f0) [<c00744f8>] (do_execve+0x0/0x1f0) from [<c001f438>] (sys_execve+0x3c/0x5c) [<c001f3fc>] (sys_execve+0x0/0x5c) from [<c001ad60>] (ret_fast_syscall+0x0/0x2c) r7 = 0000000B r6 = 00042A9C r5 = 00042A54 r4 = 00042A5C Code: e1a0a001 e1a04002 e1a08003 e59b9004 (e59e7000) Segmentation fault ~ # <1>Unable to handle kernel paging request at virtual address a0ad0574 pgd = c0004000 [a0ad0574] *pgd=00000000 Internal error: Oops: 0 [#2] Modules linked in: simp911x CPU: 0 PC is at 0xa0ad0574 LR is at __wake_up_common+0x50/0x7c pc : [<a0ad0574>] lr : [<c002d858>] Not tainted sp : c01b7c9c ip : c0c881d4 fp : c01b7cc4 r10: 00000003 r9 : c01b7ce0 r8 : 00000000 r7 : 50db41db r6 : 00d5a27d r5 : c0000008 r4 : 00000001 r3 : c01b7ce0 r2 : 00000000 r1 : 00000003 r0 : c0c881d4 Flags: nzCv IRQs off FIQs on Mode SVC_32 (T) Segment kernel Control: 5317F Table: 07E18000 DAC: 00000017 Process swapper (pid: 0, stack limit = 0xc01b6194) Stack: (0xc01b7c9c to 0xc01b8000) 7c80: 20000013 7ca0: 00000001 c7cede94 00000060 c02120b8 00000068 8dca010a c01b7cdc c01b7cc8 7cc0: c002d8b0 c002d818 c01b7ce0 c7ce8f30 c01b7cf4 c01b7ce0 c0045bdc c002d894 7ce0: c7ce8f30 00000001 c01b7d0c c01b7cf8 c0045c08 c0045bb4 c7ce8ec0 00000060 7d00: c01b7d24 c01b7d10 c017edd4 c0045bf4 c7ce8ec0 00000060 c01b7d48 c01b7d28 7d20: c017f214 c017ed08 c7ce8ec0 00000060 c7ce8ec0 00000060 c7e08e40 c01b7d5c 7d40: c01b7d4c c017f32c c017f0b8 c7e06958 c01b7d78 c01b7d60 c017c0d8 c017f2dc 7d60: 00000060 c7ce8ec0 c78240e0 c01b7da4 c01b7d7c c017d7cc c017c068 c01b7da0 7d80: c01b7d8c c78240e0 c7e08e40 00000068 00000000 c78240e0 c01b7dc4 c01b7da8 7da0: c0164368 c017d68c c7e08e40 00000000 00000000 c020d8ac c01b7e30 c01b7dc8 7dc0: c0164874 c0164224 00000002 c01b7e3c c01b7ddc c001a980 c0021bf0 c78bc200 7de0: 00000007 c881e0a4 c0000007 c78bc200 ffffffff a5ca010a 00000068 c7870034 7e00: a5ca010a 8dca010a c78240e0 00000000 00000011 c020d8ac 00000040 c020c5f4 7e20: ffffb2a7 c01b7e4c c01b7e34 c01436f4 c01643f8 c78240e0 c7870020 00000008 7e40: c01b7e80 c01b7e50 c0143c00 c0143628 c7c87000 7a320ca3 0000001a c78240e0 7e60: c01ce890 c78240e0 c020c858 00000008 c7c87000 c01b7ea0 c01b7e84 c012dc90 7e80: c01437c0 c7c87000 c020c610 00000000 c01b7ed0 c01b7ecc c01b7ea4 c012dd94 7ea0: c012dad8 c020c6cc c020c610 c020c5f4 ffffb2a7 c01bd6ac 41069263 c01f80e4 7ec0: c01b7ef4 c01b7ed0 c012df04 c012dcf8 0000012c 00000001 c01fe760 c01b6000 7ee0: 0000000a c01fe720 c01b7f18 c01b7ef8 c0035a48 c012de84 ffffffff f1140000 7f00: 00000001 c02120cc c01b7f5c c01b7f28 c01b7f1c c0035be0 c00359fc c01b7f58 7f20: c01b7f2c c001bd94 c0035bac c01b7f68 c01b7f3c ffffffff f1140000 00000001 7f40: c02120cc 00017d8c 00017d5c c01b7fb0 c01b7f5c c001a9c4 c001bc84 00000000 7f60: 0005317f 0005217f 60000013 c001c58c c01b6000 c01b9c70 c02120cc 00017d8c 7f80: 41069263 00017d5c c01b7fb0 c01b7fb4 c01b7fa4 c001c5d0 c001c5dc 60000013 7fa0: ffffffff c01b7fc8 c01b7fb4 c001c628 c001c59c c0200f6c c01f8e5c c01b7fd8 7fc0: c01b7fcc c001a024 c001c5f4 c01b7ff4 c01b7fdc c00087bc c001a010 c00082e4 7fe0: c01f8ec8 00053175 00000000 c01b7ff8 00008094 c0008698 00000000 00000000 Backtrace: [<c002d808>] (__wake_up_common+0x0/0x7c) from [<c002d8b0>] (__wake_up+0x2c/0x34) [<c002d884>] (__wake_up+0x0/0x34) from [<c0045bdc>] (__wake_up_bit+0x38/0x40) r4 = C7CE8F30 [<c0045ba4>] (__wake_up_bit+0x0/0x40) from [<c0045c08>] (wake_up_bit+0x24/0x28) [<c0045be4>] (wake_up_bit+0x0/0x28) from [<c017edd4>] (rpc_make_runnable+0xdc/0xf0) r5 = 00000060 r4 = C7CE8EC0 [<c017ecf8>] (rpc_make_runnable+0x0/0xf0) from [<c017f214>] (__rpc_do_wake_up_task+0x16c/0x1b8) r5 = 00000060 r4 = C7CE8EC0 [<c017f0a8>] (__rpc_do_wake_up_task+0x0/0x1b8) from [<c017f32c>] (rpc_wake_up_task+0x60/0x84) r8 = C7E08E40 r7 = 00000060 r6 = C7CE8EC0 r5 = 00000060 r4 = C7CE8EC0 [<c017f2cc>] (rpc_wake_up_task+0x0/0x84) from [<c017c0d8>] (xprt_complete_rqst+0x80/0x8c) r4 = C7E06958 [<c017c058>] (xprt_complete_rqst+0x0/0x8c) from [<c017d7cc>] (xs_udp_data_ready+0x150/0x174) r6 = C78240E0 r5 = C7CE8EC0 r4 = 00000060 [<c017d67c>] (xs_udp_data_ready+0x0/0x174) from [<c0164368>] (udp_queue_rcv_skb+0x154/0x1d4) r8 = C78240E0 r7 = 00000000 r6 = 00000068 r5 = C7E08E40 r4 = C78240E0 [<c0164214>] (udp_queue_rcv_skb+0x0/0x1d4) from [<c0164874>] (udp_rcv+0x48c/0x690) r7 = C020D8AC r6 = 00000000 r5 = 00000000 r4 = C7E08E40 [<c01643e8>] (udp_rcv+0x0/0x690) from [<c01436f4>] (ip_local_deliver+0xdc/0x198) [<c0143618>] (ip_local_deliver+0x0/0x198) from [<c0143c00>] (ip_rcv+0x450/0x504) r6 = 00000008 r5 = C7870020 r4 = C78240E0 [<c01437b0>] (ip_rcv+0x0/0x504) from [<c012dc90>] (netif_receive_skb+0x1c8/0x220) r7 = C7C87000 r6 = 00000008 r5 = C020C858 r4 = C78240E0 [<c012dac8>] (netif_receive_skb+0x0/0x220) from [<c012dd94>] (process_backlog+0xac/0x18c) r7 = C01B7ED0 r6 = 00000000 r5 = C020C610 r4 = C7C87000 [<c012dce8>] (process_backlog+0x0/0x18c) from [<c012df04>] (net_rx_action+0x90/0x170) [<c012de74>] (net_rx_action+0x0/0x170) from [<c0035a48>] (__do_softirq+0x5c/0xd4) r8 = C01FE720 r7 = 0000000A r6 = C01B6000 r5 = C01FE760 r4 = 00000001 [<c00359ec>] (__do_softirq+0x0/0xd4) from [<c0035be0>] (irq_exit+0x44/0x4c) r8 = C01B7F5C r7 = C02120CC r6 = 00000001 r5 = F1140000 r4 = FFFFFFFF [<c0035b9c>] (irq_exit+0x0/0x4c) from [<c001bd94>] (asm_do_IRQ+0x120/0x13c) [<c001bc74>] (asm_do_IRQ+0x0/0x13c) from [<c001a9c4>] (__irq_svc+0x24/0x80) [<c001c58c>] (default_idle+0x0/0x58) from [<c001c628>] (cpu_idle+0x44/0x60) [<c001c5e4>] (cpu_idle+0x0/0x60) from [<c001a024>] (__init_end+0x24/0x2c) r5 = C01F8E5C r4 = C0200F6C [<c001a000>] (__init_end+0x0/0x2c) from [<c00087bc>] (start_kernel+0x134/0x16c) [<c0008688>] (start_kernel+0x0/0x16c) from [<00008094>] (0x8094) Code: bad PC value. <0>Kernel panic - not syncing: Aiee, killing interrupt handler! -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/