On 5/1/07, Meher <mail2meher@xxxxxxxxx> wrote:
Hi, I am working on a MIPS32 based system with Linux 2.6.10 on it (yep.. it is old :( ). I am working on migrating to the new version. I have a written an ethernet driver for a custom ethenet chip and I am able to send and receive packets through the interface. When I set kernel to Auto IP config I can also see that kernel gets an IP address assigned. But after some time kernel crashes giving a message ".BUG: sleeping function called from invalid context events/0(4) at arch/mips/math-emu/dsemul.c". This problem does not appear when I am
Can you please recheck if you are not holding any spinlocks.Also check if you are not doing a memory allocation with spinlock held or in interrupt context.May be you are doing something like printk which may sleep IMO.Rechcek any methods you are calling which may sleep. HTH Thanks ~psr
not using the ethernet driver (disable ethernet interface). I looked at the RX/TX path and I am using Old API interface in the ethernet driver. I am not calling any functions that can sleep. Can anyone sugest me how to debug the problem? Please let me know if you need more information. This is the kernel log: Booting... Launching kernel decompressor. Starting GZIP Uncompression Algorithm. Kernel decompressor was successful ... launching kernel. LINUX started... Entering start_kernel Linux version 2.6.10_dev-malta-mips2_fp_len (meher@xxxxxxxxxxxxx) (gcc version 3.4.3 ) #271 Mon Apr 30 16:13:53 CDT 2007 CPU revision is: 00018448 Determined physical RAM map: memory: 14001000 @ 00000000 (reserved) memory: 0001f000 @ 14001000 (ROM data) memory: 00243000 @ 14020000 (reserved) memory: 01d9d000 @ 14263000 (usable) Built 1 zonelists Kernel command line: console=ttyS0,9600n81 root=/dev/mtdblock0 rootfstype=jffs2 rw Primary instruction cache 16kB, physically tagged, 4-way, linesize 16 bytes. Primary data cache 8kB, 4-way, linesize 16 bytes. Synthesized TLB refill handler (20 instructions). Synthesized TLB load handler fastpath (32 instructions). Synthesized TLB store handler fastpath (32 instructions). Synthesized TLB modify handler fastpath (31 instructions). PID hash table entries: 256 (order: 8, 4096 bytes) CPU frequency 187.50 MHz Using 93.750 MHz high precision timer. Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) Freeing Bootloader reserved memory [0x0001f000 @ 0x14001000] Memory: 30080k/32768k available (1662k kernel code, 2644k reserved, 438k data, 112k init) Mount-cache hash table entries: 512 (order: 0, 4096 bytes) Checking for 'wait' instruction... available. spawn_desched_task(00000000) desched cpu_callback 3/00000000 ksoftirqd started up. softirq RT prio: 24. desched cpu_callback 2/00000000 desched thread 0 started up. NET: Registered protocol family 16 Can't analyze prologue code at 941bd670 EFS: 1.0a - http://aeschi.ch.eu.org/efs/ JFFS2 version 2.2. (C) 2001-2003 Red Hat, Inc. Generic RTC Driver v1.07 Serial: 8250/16550 driver $Revision: 1.90 $ 5 ports, IRQ sharing disabled ttyS0 at MMIO 0x0 (irq = 15) is a 16550A io scheduler noop registered loop: loaded (max 8 devices) Currently in Ceswitch_Probe Platform device register completed Driver register completed Alloc Netdev completed In ceswitch_dev_init Out ceswitch_dev_init In eswitch_dev_get_net_stats CESWITCH:Installed ceswitch elevator: using noop as default io scheduler avalanche flash device: 0x1000000 at 0x10000000. Primary flash device: Found 1 x16 devices at 0x0 in 16-bit bank Amd/Fujitsu Extended Query Table at 0x0040 Primary flash device: CFI does not contain boot bank location. Assuming top. number of CFI chips: 1 cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness. Looking for mtd device :mtd0: flash_base and flash_end for mtd0 are: 90120000,90320000 Found a mtd0 image (0x120000), with size (0x200000). Creating 1 MTD partitions on "Primary flash device": 0x00120000-0x00320000 : "mtd0" Looking for mtd device :mtd1: flash_base and flash_end for mtd1 are: 90020000,90120000 Found a mtd1 image (0x20000), with size (0x100000). Creating 1 MTD partitions on "Primary flash device": 0x00020000-0x00120000 : "mtd1" Looking for mtd device :mtd2: flash_base and flash_end for mtd2 are: 90000000,90020000 Found a mtd2 image (0x0), with size (0x20000). Creating 1 MTD partitions on "Primary flash device": 0x00000000-0x00020000 : "mtd2" Number of partitions detected: 3 mice: PS/2 mouse device common for all mice NET: Registered protocol family 2 IP: routing cache hash table of 512 buckets, 4Kbytes TCP: Hash tables configured (established 2048 bind 4096) ********* In eswitch_open *********** Calling initPhyReset initPhyReset::Bringing DSP Out of Reset initPhyReset::Bringing ESWITCH Out of Reset initPhyReset::Reset the PHY DSP CLock PLL Value is 0x427e phyGetState[0]: link = 0, speed = 0, duplex = 0 phyGetState[1]: link = 0, speed = 0, duplex = 0 GIG PHYs detected, PHYID = 0x143bcb1 phyConfigurePort[0]: 0x00000100 Phy[0]: 0x00000100 phyConfigurePort[1]: 0x00000100 Phy[1]: 0x00000100 cesw0: Successfully installed IRQ: 41 eswitch_open::Checking for PhyStatechange for port : 0 phyState hasn't changed checking again for 1 th time LINKCHANGE: PHY[0]: Link= 0000 --> 0001 LINKCHANGE: PHY[0]: Speed= 0000 --> 0020 LINKCHANGE: PHY[0]: Duplex= 0000 --> 0001 PHY[0] changed calling pswitchPortCfgChange(0) phyGetState[0]: link = 1, speed = 32, duplex = 1 pswitch: MAC[0].speed = 100 pswitch: MAC[0].duplex = H Kalyan::eswitch_open::Checking for PhyStatechange for port : 1 phyState hasn't changed checking again for 1 th time Kalyan:: In eswitch_dev_get_net_stats Kalyan:: In eswitch_dev_get_net_stats Sending DHCP requests .In eswitch_dev_tx now.. calling pswitchSend In pswitchSend.. pswitchSend::It is broadcast packet: 255 In pswitchSend.. pswitchSend:: dest = 0xffffffffffff pswitchSend::It is broadcast packet: 255 OK IP-Config: Got DHCP answer from 0.0.0.0, my address is 10.XX.X.XXX IP-Config: Complete: device=cesw0, addr=10.13.8.116, mask=255.255.255.240, gw=10.XX.X.XXX, host=10.XX.X.XXX, domain=cisco.com, nis-domain=(none), bootserver=0.0.0.0, rootserver=0.0.0.0, rootpath= VFS: Mounted root (jffs2 filesystem). Freeing unused kernel memory: 112k freed Running /bin/sh Algorithmics/MIPS FPU Emulator v1.5 BusyBox v1.00 (2007.02.05-19:57+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands. # ping BusyBox v1.00 (2007.02.05-19:57+0000) multi-call binary Usage: ping [OPTION]... host # BUG: sleeping function called from invalid context events/0(4) at arch/mips/math-emu/dsemul.c :140 in_atomic():1 [00000001], irqs_disabled():1 Call Trace: [<94043314>] __might_sleep+0x104/0x11c [<94043008>] do_dsemulret+0x58/0x160 [<94043970>] task_rq_lock+0x38/0x54 [<9402db70>] do_ade+0x20/0x380 [<94027760>] handle_adel_int+0x38/0x58 [<9407c980>] drain_array_locked+0x78/0xd4 [<9407c808>] free_block+0x8c/0x18c [<94246000>] ip_auto_config+0xa54/0x1184 [<9407c980>] drain_array_locked+0x78/0xd4 [<94246000>] ip_auto_config+0xa54/0x1184 [<9407dc10>] cache_reap+0xb4/0x320 [<941170d8>] flush_to_ldisc+0x0/0x1a0 [<941bc358>] schedule+0x58/0x158 [<9407db5c>] cache_reap+0x0/0x320 [<94060120>] worker_thread+0x254/0x384 [<941bba24>] __schedule+0x14c/0x980 [<940447e4>] default_wake_function+0x0/0x28 [<9405fecc>] worker_thread+0x0/0x384 [<9405fecc>] worker_thread+0x0/0x384 [<940668fc>] kthread+0x124/0x168 [<94028afc>] kernel_thread_helper+0x10/0x18 [<94028aec>] kernel_thread_helper+0x0/0x18 Unhandled kernel unaligned access in arch/mips/kernel/unaligned.c::emulate_load_store_insn, line 475 [#1]: Cpu 0 $ 0 : 00000000 1000fc00 9466d400 94266000 $ 4 : b43a0ba0 942d4320 ffffffff 00000001 $ 8 : 00000002 942fa1a4 00000000 942492b0 $12 : 00000000 fffffffb ffffffff 0000000a $16 : 942d4320 942bda60 942bda6c 00000000 $20 : 00000001 ffd80000 80000000 94250000 $24 : 00000000 9400de18 $28 : 94016000 94017e70 00200200 9407c980 Hi : 00000010 Lo : 00000004 epc : 9407c808 free_block+0x8c/0x18c Not tainted ra : 9407c980 drain_array_locked+0x78/0xd4 Status: 1000fc02 KERNEL EXL Cause : 30800010 BadVA : 00000003 PrId : 00018448 Modules linked in: Process events/0 (pid: 4, threadinfo=94016000, task=9401c8e0) Stack : 941efa5c 00000000 942ebbe0 942ebbe0 942bda7c 94246000 942d4310 00000001 942d4320 942bdad0 942bd97c 94250000 00200200 00100100 94250000 9407c980 1000fc00 94004f28 94246000 942ebbe0 942bd97c 942bda60 00000001 9407dc10 941170d8 94004f10 94004f18 94004f20 94017ee8 941bc358 94253e24 94253e28 1000fc01 00000000 9407db5c 94004f10 94004f18 94004f20 94004f28 94060120 ... Call Trace: [<94246000>] ip_auto_config+0xa54/0x1184 [<9407c980>] drain_array_locked+0x78/0xd4 [<94246000>] ip_auto_config+0xa54/0x1184 [<9407dc10>] cache_reap+0xb4/0x320 [<941170d8>] flush_to_ldisc+0x0/0x1a0 [<941bc358>] schedule+0x58/0x158 [<9407db5c>] cache_reap+0x0/0x320 [<94060120>] worker_thread+0x254/0x384 [<941bba24>] __schedule+0x14c/0x980 [<940447e4>] default_wake_function+0x0/0x28 [<9405fecc>] worker_thread+0x0/0x384 [<9405fecc>] worker_thread+0x0/0x384 [<940668fc>] kthread+0x124/0x168 [<94028afc>] kernel_thread_helper+0x10/0x18 [<94028aec>] kernel_thread_helper+0x0/0x18 Code: 00431021 00551021 8c46001c <8cc30004> 8cc20000 ac620000 ac430004 3c020010 34420100 note: events/0[4] exited with preempt_count 1 BUG: scheduling while atomic: events/0/0x00000001/4 caller is do_exit+0xbc8/0xf4c Call Trace: [<9404d208>] do_exit+0xbc8/0xf4c [<941bbfcc>] __schedule+0x6f4/0x980 [<941bbfc4>] __schedule+0x6ec/0x980 [<9404d208>] do_exit+0xbc8/0xf4c [<9402ce78>] __die_if_kernel+0x0/0x90 [<9402ceec>] __die_if_kernel+0x74/0x90 [<9402ced0>] __die_if_kernel+0x58/0x90 [<940621dc>] search_exception_tables+0x4c/0x5c [<940311f4>] fixup_exception+0x24/0x60 [<9407c808>] free_block+0x8c/0x18c [<9402dea8>] do_ade+0x358/0x380 [<9402de7c>] do_ade+0x32c/0x380 [<94027760>] handle_adel_int+0x38/0x58 [<9407c980>] drain_array_locked+0x78/0xd4 [<9407c808>] free_block+0x8c/0x18c [<94246000>] ip_auto_config+0xa54/0x1184 [<9407c980>] drain_array_locked+0x78/0xd4 [<94246000>] ip_auto_config+0xa54/0x1184 [<9407dc10>] cache_reap+0xb4/0x320 [<941170d8>] flush_to_ldisc+0x0/0x1a0 [<941bc358>] schedule+0x58/0x158 [<9407db5c>] cache_reap+0x0/0x320 [<94060120>] worker_thread+0x254/0x384 [<941bba24>] __schedule+0x14c/0x980 [<940447e4>] default_wake_function+0x0/0x28 [<9405fecc>] worker_thread+0x0/0x384 [<9405fecc>] worker_thread+0x0/0x384 [<940668fc>] kthread+0x124/0x168 [<94028afc>] kernel_thread_helper+0x10/0x18 [<94028aec>] kernel_thread_helper+0x0/0x18 -- Regards, Meher -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ
-- play the game -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ