Bug 291 - Issues at resume time (from S3)
: Issues at resume time (from S3)
Status: VERIFIED FIXED
: IPW2200
Power Management
: 0.12
: All All
: P1 normal
Assigned To:
:
:
:
:
:
  Show dependency treegraph
 
Reported: 2004-10-20 01:15 by
Modified: 2005-10-02 15:00 (History)


Attachments
fix release_firmware oops (623 bytes, patch)
2004-12-15 21:39, Zhu Yi
Details | Diff


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2004-10-20 01:15:35
Ported from OS ML submitted by Mike Hommey [mh@glandium.org] on 10/19.
Subject: [Ipw2100-devel] [ipw2200] Issues at resume time (from S3)

Hi list,

I successfully put my laptop to S3 mode with latest linux kernel 2.6.9,
but while resuming worked, I got some error messages you would like to
read (see below), and ipw2200 failed to initialize. (there's a strange
firmware issue).

Mike

PS: while at it, you might want to know that the ipw2200 driver is now
in Debian GNU/Linux contrib:
http://ftp.debian.org/debian/pool/contrib/i/ipw2200/

PM: Preparing system for suspend
Stopping tasks:
================================================================
=================|
usbhid 1-1:1.0: resume is unsafe!
PM: Entering state.
Back to C!
Warning: CPU frequency is 600000, cpufreq assumed 1500000 kHz.
PM: Finishing up.
PCI: Setting latency timer of device 0000:00:1d.0 to 64
PCI: Setting latency timer of device 0000:00:1d.0 to 64
PCI: Setting latency timer of device 0000:00:1d.1 to 64
PCI: Setting latency timer of device 0000:00:1d.1 to 64
PCI: Setting latency timer of device 0000:00:1d.2 to 64
PCI: Setting latency timer of device 0000:00:1d.2 to 64
PCI: Setting latency timer of device 0000:00:1d.7 to 64
ACPI: PCI interrupt 0000:00:1f.1[A]: no GSI
ACPI: PCI interrupt 0000:00:1f.5[B] -> GSI 9 (level, low) -> IRQ 9
PCI: Setting latency timer of device 0000:00:1f.5 to 64
ACPI: PCI interrupt 0000:00:1f.6[B] -> GSI 9 (level, low) -> IRQ 9
PCI: Setting latency timer of device 0000:00:1f.6 to 64
ACPI: PCI interrupt 0000:01:00.0[A] -> GSI 9 (level, low) -> IRQ 9
PCI: Enabling device 0000:02:04.2 (0000 -> 0002)
ACPI: PCI interrupt 0000:02:04.2[C] -> GSI 9 (level, low) -> IRQ 9
e100: eth0: e100_watchdog: link up, 100Mbps, full-duplex
hub 1-0:1.0: reactivate --> -22
hub 2-0:1.0: reactivate --> -22
hub 3-0:1.0: reactivate --> -22
hub 4-0:1.0: reactivate --> -22
hub 4-0:1.0: reactivate --> -22
Restarting tasks... done
agpgart: Found an AGP 2.0 compliant device at 0000:00:00.0.
agpgart: Putting AGP V2 device at 0000:00:00.0 into 1x mode
agpgart: Putting AGP V2 device at 0000:01:00.0 into 1x mode
[drm] Loading R200 Microcode
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 0.12
ipw2200: Copyright(c) 2003-2004 Intel Corporation
ACPI: PCI interrupt 0000:02:0b.0[A] -> GSI 9 (level, low) -> IRQ 9
ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
ipw2200: Radio Frequency Kill Switch is On:
Kill switch must be turned off for wireless networking to work.
wlan0: no IPv6 routers present
PM: Preparing system for suspend
Stopping tasks:
================================================================
=================|
usbhid 1-1:1.0: resume is unsafe!
wlan0: Going into suspend...
PM: Entering state.
Back to C!
Warning: CPU frequency is 600000, cpufreq assumed 1500000 kHz.
PM: Finishing up.
PCI: Setting latency timer of device 0000:00:1d.0 to 64
PCI: Setting latency timer of device 0000:00:1d.0 to 64
PCI: Setting latency timer of device 0000:00:1d.1 to 64
PCI: Setting latency timer of device 0000:00:1d.1 to 64
PCI: Setting latency timer of device 0000:00:1d.2 to 64
PCI: Setting latency timer of device 0000:00:1d.2 to 64
PCI: Setting latency timer of device 0000:00:1d.7 to 64
ACPI: PCI interrupt 0000:00:1f.1[A]: no GSI
ACPI: PCI interrupt 0000:00:1f.5[B] -> GSI 9 (level, low) -> IRQ 9
PCI: Setting latency timer of device 0000:00:1f.5 to 64
ACPI: PCI interrupt 0000:00:1f.6[B] -> GSI 9 (level, low) -> IRQ 9
PCI: Setting latency timer of device 0000:00:1f.6 to 64
ACPI: PCI interrupt 0000:01:00.0[A] -> GSI 9 (level, low) -> IRQ 9
PCI: Enabling device 0000:02:04.2 (0000 -> 0002)
ACPI: PCI interrupt 0000:02:04.2[C] -> GSI 9 (level, low) -> IRQ 9
wlan0: Coming out of suspend...
e100: eth0: e100_watchdog: link up, 100Mbps, full-duplex
fw_register_class_device: class_device_register failed
ipw2200: ipw2200_boot.fw load failed
ipw2200: Unable to load firmware: 0xFFFFFFEF
hub 4-0:1.0: reactivate --> -22
hub 4-0:1.0: reactivate --> -22
Restarting tasks... done
agpgart: Found an AGP 2.0 compliant device at 0000:00:00.0.
agpgart: Putting AGP V2 device at 0000:00:00.0 into 1x mode
agpgart: Putting AGP V2 device at 0000:01:00.0 into 1x mode
[drm] Loading R200 Microcode
Unable to handle kernel NULL pointer dereference at virtual address
00000004
 printing eip:
c020f0b1
*pde = 00000000
Oops: 0002 [#1]
PREEMPT
Modules linked in: ipw2200 radeon ds thermal fan button ac battery
eth1394 ipv6 af_packet firmware_class ieee80211 ieee80211_crypt e100 mii
ohci1394 ieee1394 ye nta_socket pcmcia_core snd_intel8x0m snd_intel8x0
snd_ac97_codec snd_pcm_oss snd _mixer_oss snd_pcm snd_timer
snd_page_alloc gameport snd_mpu401_uart snd_rawmidi  snd_seq_device snd
soundcore hw_random ehci_hcd joydev usbhid uhci_hcd usbcore intel_agp
agpgart pcspkr rtc speedstep_centrino freq_table processor sonypi tsde v
psmouse mousedev evdev ide_cd cdrom unix
CPU:    0
EIP:    0060:[<c020f0b1>]    Not tainted VLI
EFLAGS: 00010006   (2.6.9)
EIP is at serio_get_event+0x31/0x80
eax: 00000000   ebx: efc4a000   ecx: ee9d06e8   edx: ef602000
esi: 00000282   edi: ee9d06e0   ebp: ffffe000   esp: efc4bf70
ds: 007b   es: 007b   ss: 0068
Process kseriod (pid: 639, threadinfo=efc4a000 task=efc02020)
Stack: ee9d06e0 c033ea40 efc4a000 c020f115 ee9d06e0 c02d6af9 efc4bfc0
efc4bfcc
       c020f295 00004000 c16f7aa0 efc4a000 00000000 efc02020 c011b510
efc4bfcc
       efc4bfcc efc02020 eff2bf44 c0106132 00000000 efc02020 c011b510
efc4bfcc
Call Trace:
 [<c020f115>] serio_handle_events+0x15/0xc0
 [<c020f295>] serio_thread+0x55/0x180
 [<c011b510>] autoremove_wake_function+0x0/0x60
 [<c0106132>] ret_from_fork+0x6/0x14
 [<c011b510>] autoremove_wake_function+0x0/0x60
 [<c020f240>] serio_thread+0x0/0x180
 [<c01042cd>] kernel_thread_helper+0x5/0x18
Code: 89 74 24 04 89 7c 24 08 9c 5e fa bb 00 e0 ff ff 21 e3 ff 43 14 8b
0d 64 eb  33 c0 81 f9 64 eb 33 c0 74 36 8b 51 04 8d 79 f8 8b 01 <89> 50
04 89 02 89 49 04  89 09 56 9d ff 4b 14 8b 43 08 a8 08 75
 <6>note: kseriod[639] exited with preempt_count 2
ipw2200: 'ipw2200_boot.fw' firmware version not compatible (224 != 2)
ipw2200: Unable to load boot firmware
Trying to vfree() bad address (ee5ab640)
Badness in __vunmap at mm/vmalloc.c:307
 [<c014ec68>] vfree+0x28/0x40
 [<f0ad791a>] release_firmware+0x1a/0x40 [firmware_class]
 [<f0b45c1c>] ipw_load+0x5bc/0x9c0 [ipw2200]
 [<f0b4e698>] ipw_up+0x38/0x1c0 [ipw2200]
 [<f0b4aec0>] ipw_adapter_restart+0x30/0x50 [ipw2200]
 [<c012da79>] worker_thread+0x1d9/0x2a0
 [<f0b4dd90>] ipw_rf_kill+0x0/0x160 [ipw2200]
 [<c011a170>] default_wake_function+0x0/0x20
 [<c011a170>] default_wake_function+0x0/0x20
 [<c012d8a0>] worker_thread+0x0/0x2a0
 [<c0131bfa>] kthread+0xaa/0xb0
 [<c0131b50>] kthread+0x0/0xb0
 [<c01042cd>] kernel_thread_helper+0x5/0x18
ipw2200: Unable to load firmware: 0xFFFFFFF4
ipw2200: Failed to up device
------- Comment #1 From 2004-11-17 21:40:11 -------
Two bugs here:

1. ipw2200 reports rf kill on during resume, but it is actually not.
2. even it rf kill changes before and after resume, firmware loading code 
should handle it cleanly.
------- Comment #2 From 2004-12-14 18:22:28 -------
Want to know if it still exists w/ 0.18. It might be the txpower shut the radio
if user didn't do it.
------- Comment #3 From 2004-12-15 21:39:54 -------
Created an attachment (id=183) [details]
fix release_firmware oops
------- Comment #4 From 2004-12-15 21:40:42 -------
please apply
------- Comment #5 From 2004-12-18 14:44:25 -------
Applied for 0.19
------- Comment #6 From 2004-12-18 14:46:27 -------
Applied to 0.19
------- Comment #7 From 2004-12-21 18:57:07 -------
Original reporter has stated that he has not seen this issue for a while. 
Marking as verified.