Opened 5 years ago

Closed 5 years ago

Last modified 20 months ago

#11510 closed defect (fixed)

Libertas device loses wireless extensions after suspend/resume cycle

Reported by: greenfeld Owned by: pgf
Priority: high Milestone:
Component: kernel Version: Development build as of this date
Keywords: Cc: tonyforster, carrott
Blocked By: Blocking:
Deployments affected: Action Needed: test in build
Verified: no


  1. Boot an XO 1.75 C1 with 11.3.1 os15.
  2. Quickly associate it with an access point, or let it connect to one you previously associated to prior to rebooting. Verified you got a good network connection in the Sugar network view.
  3. Let the XO go into idle suspend mode.
  4. Wake up the XO.
  5. Use "ifconfig" and "iwconfig" in a command-line terminal. The eth0 device will still have an IP address, but iwconfig will report it has "no wireless extensions", and it is impossible to reconnect to the access point.

Change History (11)

comment:1 Changed 5 years ago by tonyforster

  • Cc tonyforster added

NZ testing gets something similar on OS16 (see 4 Dec results). I am getting something similar on OS17. Wifi fails a bit after boot, quite likely s/r and won't reconnect

comment:2 Changed 5 years ago by Quozl

Yes, I find this 100% reproducible. (Frequency of problem was not mentioned in ticket description).

comment:3 Changed 5 years ago by carrott

  • Cc carrott added

comment:4 Changed 5 years ago by martin.langhoff

Kernel with related Libertas fixes included in OS19

comment:5 Changed 5 years ago by martin.langhoff

  • Action Needed changed from diagnose to test in build

comment:6 Changed 5 years ago by greenfeld

  • Action Needed changed from test in build to diagnose

This is not fixed in 11.3.1 os19.

comment:7 Changed 5 years ago by martin.langhoff

  • Owner set to pgf

Indeed, still broken in OS19. However... under runin, we suspend/resume plenty, and we never lose wireless extensions on eth0. Under a normal session, suspend is controlled by powerd.

It seems likely that something that powerd does on the way into suspend, or soon after resume, is triggering this bug. Maybe it's the WOL setup?

comment:8 Changed 5 years ago by martin.langhoff

Commenting out the calls to ethtool in powerd prevents the bug. The in a serial session:

# ethtool -s eth0 wol u
# iwconfig 
lo        no wireless extensions.

eth0      IEEE 802.11bg  ESSID:"njambre-guest"  
          Mode:Managed  Frequency:2.462 GHz  Access Point: 00:23:69:FA:75:B8   
          Bit Rate=5.5 Mb/s   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on
          Link Quality=70/70  Signal level=-36 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

[  256.656680] PM: Syncing filesystems ... done.
[  256.663687] Freezing user space processes ... (elapsed 0.02 seconds) done.
[  256.689428] Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done.
[  256.709389] Suspending console(s) (use no_console_suspend to debug)
[  256.721466] dcon_source_switch to DCON
[  256.745800] olpc-dcon: The DCON has control
[  256.747027] RAYDIUM_i2c_suspend, disable i2c irq
[  256.747406] libertas_sdio mmc1:0001:1: mmc1:0001:1: suspend: PM flags = 0x3
[  256.749412] [galcore]: gpu_suspend, 1358
[  256.749442] >>>>>>[_gpu_off]@1127
[  256.759383] <<<<<<[_gpu_off]@1145
[  256.859639] PM: suspend of devices complete after 140.962 msecs
[  256.859955] PM: late suspend of devices complete after 0.282 msecs
[  256.861451] PM: early resume of devices complete after 0.547 msecs
[  256.861547] mmp2_pm_finish
[  256.889457] [galcore]: gpu_resume, 1369
[  256.896304] >>>>>>[_gpu_on]@1153
[  256.899476] <<<<<<[_gpu_on]@1173
[  256.899558] mmc1: error -110 during resume (card was removed?)
[  257.149461] usb 1-1: reset high speed USB device number 2 using pxau2o-ehci
[  257.430182] dcon_source_switch to CPU
[  257.430892] PM: resume of devices complete after 569.221 msecs
[  257.514498] olpc-dcon: The CPU has control
[  257.518572] Restarting tasks ... 
[  257.533620] done.

bash-4.1# iwconfig eth0  
eth0      no wireless extensions.

The "mmc1: error -110 during resume (card was removed?)" only appears when we call ethtool wol -- in the resume path where the wireless extensions are gone.


# rmmod libertas_sdio  
[  351.554015] libertas_sdio: error -110 sending packet to firmware
[  354.560641] libertas_sdio mmc1:0001:1: eth0: command 0x0024 timed out
[  354.567089] libertas_sdio mmc1:0001:1: eth0: Timeout submitting command 0x0024
[  354.574770] libertas_sdio mmc1:0001:1: eth0: PREP_CMD: command 0x0024 failed: -110
#modprobe libertas_sdio 
[  378.626196] libertas_sdio: Libertas SDIO driver
[  378.631093] libertas_sdio: Copyright Pierre Ossman
[  378.636289] libertas_sdio: probe of mmc1:0001:1 failed with error -110

Unfortunately, on 1.75 today, the Libertas driver seems to promise support, so there's no smart workaround.

# ethtool  eth0 
Settings for eth0:
        Supports Wake-on: pumb
        Wake-on: d

comment:9 Changed 5 years ago by jnettlet

  • Action Needed changed from diagnose to test in build

With the last round of MMC patches this should be fixed. The patches should be in OS23.

comment:10 Changed 5 years ago by martin.langhoff

  • Resolution set to fixed
  • Status changed from new to closed

Definitely fixed in OS26

comment:11 Changed 20 months ago by Quozl

  • Milestone 1.75-software deleted

Milestone 1.75-software deleted

Note: See TracTickets for help on using tickets.