System is 800 MHz AMD Athlon / Asus K7V Mainboard using i686 version of glibc. /usr/bin/apm --suspend would result in kernel panic as system returned from suspend. Problem was resolved by using i386 version of glibc. (Per bug # 25753)
Hmm... Even a broken glibc shouldn't be able to cause kernel panics. Assigning to kernel.
To have a chance of fixing this (it could be a problem with the apm bios), we need the text of the panic, as run through ksymoops. It would be specific to your machine.
1) Performed a clean install of fisher 2) copied /proc/ ksyms and modules to disk 3) executed: apm --suspend which, as expected, caused a crash on resume 4) Rebooted the system 5) ran ksymoops, output is below. For what it's worth, I commented out the "eth0" line in /etc/modules.conf and restarted the system. Without the tulip (eth0) module loaded the system resumed from the suspend correctly. Output from ksymoops follows: ksymoops 2.4.0 on i686 2.4.0-0.99.11. Options used -v /boot/vmlinux-2.4.0-0.99.11 (specified) -k ./ksyms (specified) -l ./modules (specified) -o /lib/modules/2.4.0-0.99.11/ (specified) -m /boot/System.map-2.4.0-0.99.11 (specified) Warning (compare_maps): mismatch on symbol partition_name , ksyms_base says c01c5cd0, vmlinux says c0150f90. Ignoring ksyms_base entry Warning (compare_maps): mismatch on symbol tulip_max_interrupt_work , tulip says c888acc0, /lib/modules/2.4.0-0.99.11/kernel/drivers/net/tulip/tulip.o says c888a3c0. Ignoring /lib/modules/2.4.0-0.99.11/kernel/drivers/net/tulip/tulip.o entry Warning (compare_maps): mismatch on symbol tulip_rx_copybreak , tulip says c888acc4, /lib/modules/2.4.0-0.99.11/kernel/drivers/net/tulip/tulip.o says c888a3c4. Ignoring /lib/modules/2.4.0-0.99.11/kernel/drivers/net/tulip/tulip.o entry Warning (compare_maps): mismatch on symbol usb_devfs_handle , usbcore says c882dee0, /lib/modules/2.4.0-0.99.11/kernel/drivers/usb/usbcore.o says c882dac0. Ignoring /lib/modules/2.4.0-0.99.11/kernel/drivers/usb/usbcore.o entry Feb 8 18:43:18 bugs kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000004 Feb 8 18:43:18 bugs kernel: c011c2a1 Feb 8 18:43:18 bugs kernel: *pde = 00000000 Feb 8 18:43:18 bugs kernel: Oops: 0002 Feb 8 18:43:18 bugs kernel: CPU: 0 Feb 8 18:43:18 bugs kernel: EIP: 0010:[add_timer+161/208] Feb 8 18:43:18 bugs kernel: EIP: 0010:[<c011c2a1>] Using defaults from ksymoops -t elf32-i386 -a i386 Feb 8 18:43:18 bugs kernel: EFLAGS: 00010082 Feb 8 18:43:18 bugs kernel: eax: c7441c00 ebx: c7441c00 ecx: 00000292 edx: 00000000 Feb 8 18:43:18 bugs kernel: esi: c7441800 edi: 00001043 ebp: 00000000 esp: c6635eec Feb 8 18:43:18 bugs kernel: ds: 0018 es: 0018 ss: 0018 Feb 8 18:43:18 bugs kernel: Process ifconfig (pid: 1052, stackpage=c6635000) Feb 8 18:43:18 bugs kernel: Stack: 00000000 c888577c c7441c00 c7441800 c7441800 00000000 c01d5332 c7441800 Feb 8 18:43:18 bugs kernel: c7441800 00001002 c01d615f c7441800 c12509a0 c6635f5d c7441800 bffffaa8 Feb 8 18:43:18 bugs kernel: c01fafc4 c7441800 00001043 c6635f58 00000000 00000000 c7441800 c12509a0 Feb 8 18:43:18 bugs kernel: Call Trace: [tulip:comet_timer+1948/9856] [dev_open+66/160] [dev_change_flags+79/272] [devinet_ioctl+708/1584] [sock_ioctl+30/48] [sys_ioctl+487/512] [system_call+51/56] Feb 8 18:43:18 bugs kernel: Call Trace: [<c888577c>] [<c01d5332>] [<c01d615f>] [<c01fafc4>] [<c01d0c8e>] [<c013fcf7>] [<c0109007>] Feb 8 18:43:18 bugs kernel: Code: 89 5a 04 89 13 89 43 04 89 18 51 9d eb 14 90 51 9d 8b 4c 24 >>EIP; c011c2a1 <add_timer+a1/d0> <===== Trace; c888577c <[tulip]tulip_open+4c/60> Trace; c01d5332 <dev_open+42/a0> Trace; c01d615f <dev_change_flags+4f/110> Trace; c01fafc4 <devinet_ioctl+2c4/630> Trace; c01d0c8e <sock_ioctl+1e/30> Trace; c013fcf7 <sys_ioctl+1e7/200> Trace; c0109007 <system_call+33/38> Code; c011c2a1 <add_timer+a1/d0> 00000000 <_EIP>: Code; c011c2a1 <add_timer+a1/d0> <===== 0: 89 5a 04 mov %ebx,0x4(%edx) <===== Code; c011c2a4 <add_timer+a4/d0> 3: 89 13 mov %edx,(%ebx) Code; c011c2a6 <add_timer+a6/d0> 5: 89 43 04 mov %eax,0x4(%ebx) Code; c011c2a9 <add_timer+a9/d0> 8: 89 18 mov %ebx,(%eax) Code; c011c2ab <add_timer+ab/d0> a: 51 push %ecx Code; c011c2ac <add_timer+ac/d0> b: 9d popf Code; c011c2ad <add_timer+ad/d0> c: eb 14 jmp 22 <_EIP+0x22> c011c2c3 <add_timer+c3/d0> Code; c011c2af <add_timer+af/d0> e: 90 nop Code; c011c2b0 <add_timer+b0/d0> f: 51 push %ecx Code; c011c2b1 <add_timer+b1/d0> 10: 9d popf Code; c011c2b2 <add_timer+b2/d0> 11: 8b 4c 24 00 mov 0x0(%esp,1),%ecx 4 warnings issued. Results may not be reliable.
Looks like the problem may be associated with the Tulip ethernet driver module. If I unload this module before "apm --suspend" the system resumes from the suspend without problems. Did a clean install of release 7.0.91 (Wolverine) and upgraded the Tulip module from v0.9.13b to v0.9.14. No change. Kernel panics on resume from suspend if the Tulip module was loaded.
I turned on debugging for the tulip module, tulip_debug=4. After the suspend, the following was logged via syslog: kernel: eth0: Oversized Ethernet frame spanned multiple buffers, status 00000000! last message repeated 31 times What follows is the output from ksymoops for the Wolverine / Tulip v0.9.14 combination. ksymoops 2.4.0 on i686 2.4.1-0.1.9. Options used -V (default) -k ksyms (specified) -l modules (specified) -o /lib/modules/2.4.1-0.1.9/ (default) -m /boot/System.map-2.4.1-0.1.9 (default) Warning (compare_maps): ksyms_base symbol __VERSIONED_SYMBOL(shmem_file_setup) not found in System.map. Ignoring ksyms_base entry Warning (compare_maps): mismatch on symbol partition_name , ksyms_base says c01b0600, System.map says c01524a0. Ignoring ksyms_base entry Feb 28 10:35:28 bugs kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000004 Feb 28 10:35:28 bugs kernel: c011c531 Feb 28 10:35:28 bugs kernel: *pde = 00000000 Feb 28 10:35:28 bugs kernel: Oops: 0002 Feb 28 10:35:28 bugs kernel: CPU: 0 Feb 28 10:35:28 bugs kernel: EIP: 0010:[add_timer+161/208] Feb 28 10:35:28 bugs kernel: EIP: 0010:[<c011c531>] Using defaults from ksymoops -t elf32-i386 -a i386 Feb 28 10:35:28 bugs kernel: EFLAGS: 00010086 Feb 28 10:35:28 bugs kernel: eax: c749bc00 ebx: c749bc00 ecx: 00000292 edx: 00000000 Feb 28 10:35:28 bugs kernel: esi: c749b800 edi: 00001043 ebp: 00000000 esp: c613deec Feb 28 10:35:28 bugs kernel: ds: 0018 es: 0018 ss: 0018 Feb 28 10:35:28 bugs kernel: Process ifconfig (pid: 1031, stackpage=c613d000) Feb 28 10:35:28 bugs kernel: Stack: 00000000 c888fa7c c749bc00 c749b800 c749b800 00000000 c01bfe52 c749b800 Feb 28 10:35:28 bugs kernel: c749b800 00001002 c01c0c7f c749b800 c7f6b960 c613df5d c749b800 bffffaa8 Feb 28 10:35:28 bugs kernel: c01e5b34 c749b800 00001043 c613df58 00000000 00000000 c749b800 c7f6b960 Feb 28 10:35:28 bugs kernel: Call Trace: [tulip:comet_timer+2044/9792] [dev_open+66/160] [dev_change_flags+79/272] [devinet_ioctl+708/1584] [sock_ioctl+30/48] [sys_ioctl+487/512] [system_call+51/56] Feb 28 10:35:28 bugs kernel: Call Trace: [<c888fa7c>] [<c01bfe52>] [<c01c0c7f>] [<c01e5b34>] [<c01bb75e>] [<c0141237>] [<c0109007>] Feb 28 10:35:28 bugs kernel: Code: 89 5a 04 89 13 89 43 04 89 18 51 9d eb 14 90 51 9d 8b 4c 24 >>EIP; c011c531 <add_timer+a1/d0> <===== Trace; c888fa7c <[tulip]tulip_open+4c/60> Trace; c01bfe52 <dev_open+42/a0> Trace; c01c0c7f <dev_change_flags+4f/110> Trace; c01e5b34 <devinet_ioctl+2c4/630> Trace; c01bb75e <sock_ioctl+1e/30> Trace; c0141237 <sys_ioctl+1e7/200> Trace; c0109007 <system_call+33/38> Code; c011c531 <add_timer+a1/d0> 00000000 <_EIP>: Code; c011c531 <add_timer+a1/d0> <===== 0: 89 5a 04 mov %ebx,0x4(%edx) <===== Code; c011c534 <add_timer+a4/d0> 3: 89 13 mov %edx,(%ebx) Code; c011c536 <add_timer+a6/d0> 5: 89 43 04 mov %eax,0x4(%ebx) Code; c011c539 <add_timer+a9/d0> 8: 89 18 mov %ebx,(%eax) Code; c011c53b <add_timer+ab/d0> a: 51 push %ecx Code; c011c53c <add_timer+ac/d0> b: 9d popf Code; c011c53d <add_timer+ad/d0> c: eb 14 jmp 22 <_EIP+0x22> c011c553 <add_timer+c3/d0> Code; c011c53f <add_timer+af/d0> e: 90 nop Code; c011c540 <add_timer+b0/d0> f: 51 push %ecx Code; c011c541 <add_timer+b1/d0> 10: 9d popf Code; c011c542 <add_timer+b2/d0> 11: 8b 4c 24 00 mov 0x0(%esp,1),%ecx 2 warnings issued. Results may not be reliable.
The APM bios failed to restore the tulip state and left it corrupting memory it seems.