#8301 BLOC 8.2.0 (: Fast suspend/resume cycle causes a libertas crash

Zarro Boogs per Child bugtracker at laptop.org
Mon Sep 8 15:29:38 EDT 2008


#8301: Fast suspend/resume cycle causes a libertas crash
------------------------+---------------------------------------------------
   Reporter:  cjb       |       Owner:  dsaxena                        
       Type:  defect    |      Status:  new                            
   Priority:  blocker   |   Milestone:  8.2.0 (was Update.2)           
  Component:  kernel    |     Version:  not specified                  
 Resolution:            |    Keywords:  blocks-:8.2.0 cjbfor8.2 relnote
Next_action:  diagnose  |    Verified:  0                              
  Blockedby:            |    Blocking:                                 
------------------------+---------------------------------------------------

Comment(by cjb):

 Here's post-patch output.  We suspend successfully after an aborted
 command!

 {{{
 [  190.871389] libertas host: PREP_CMD: command 0x0006
 [  190.873754] libertas enter: lbs_queue_cmd():1182
 [  190.874847] libertas host: QUEUE_CMD: inserted command 0x0006 into
 cmdpending q
 [  190.885446] libertas leave: lbs_queue_cmd():1217
 [  190.890368] libertas host: PREP_CMD: wait for response
 [  190.894134] libertas leave: lbs_process_rx_command():700, ret 0
 [  190.900361] libertas enter: lbs_execute_next_command():1812
 [  190.904135] libertas host: EXEC_NEXT_CMD: sending command 0x000b
 [  190.916759] libertas enter: lbs_submit_command():1230
 [  190.930002] libertas cmd: DNLD_CMD: command 0x000b, seq 222, size 60,
 jiffies 4294956921
 [  190.934099] usb8xxx usbd: 2-1:*** type = 1
 [  190.938972] usb8xxx usbd: 2-1:size after = 60
 [  190.949161] libertas leave: lbs_submit_command():1263
 [  190.953852] libertas enter (INT): lbs_host_to_card_done():510
 [  190.959619] libertas leave (INT): lbs_host_to_card_done():521
 [  190.963754] usb8xxx enter (INT): if_usb_receive():712
 [  190.963754] usb8xxx usbd (INT): 2-1:Recv length = 0x42, Recv type =
 0xF00DFACE
 [  190.963754] libertas enter (INT): lbs_interrupt():1530
 [  190.963754] libertas thread (INT): lbs_interrupt: intcounter=0
 [  190.963754] libertas leave (INT): lbs_interrupt():1538
 [  190.963754] usb8xxx usbd (INT): 2-1:Wake up main thread to handle cmd
 response
 [  190.963754] usb8xxx leave (INT): if_usb_receive():772
 [  190.982877] libertas leave: lbs_execute_next_command():1947
 [  190.984270] libertas thread: main-thread 111: intcounter=1
 currenttxskb=00000000 dnld_sent=0
 [  191.008163] libertas thread: main-thread 222 (waking up): intcounter=1
 currenttxskb=00000000 dnld_sent=0
 [  191.018842] libertas thread: main-thread 333: intcounter=1
 currenttxskb=00000000 dnld_sent=0
 [  191.028960] usb8xxx usbd: 2-1:Int cause is 0x8
 [  191.033436] libertas thread: main-thread 444: intcounter=0
 currenttxskb=00000000 dnld_sent=0
 [  191.033754] libertas thread: main-thread: cmd response ready
 [  191.040964] libertas enter: lbs_process_rx_command():550
 [  191.045458] libertas cmd: CMD_RESP: response 0x800b, seq 222, size 62,
 jiffies 4294956940[  191.065003] libertas enter: handle_cmd_response():401
 [  191.070334] libertas enter: lbs_ret_get_log():366
 [  191.074423] libertas leave: lbs_ret_get_log():371
 [  191.086556] libertas leave: handle_cmd_response():538
 [  191.101925] olpc-ec:  running cmd 0x35
 [  191.103840] devpath 1 ep3in 3strikes
 [  191.107439] usb8xxx enter (INT): if_usb_receive():712
 [  191.112515] usb8xxx leave (INT): if_usb_receive():772
 [  191.113963] usb 2-1: USB disconnect, address 2
 [  191.123537] usb8xxx enter: if_usb_disconnect():340
 [  191.123864] libertas enter: lbs_stop_card():1328
 [  191.128733] libertas main: lbs_stop_card: clearing pending commands
 [  191.133754] libertas main: lbs_stop_card: clearing in-flight command
 0xB
 [  191.133754] libertas main: lbs_stop_card: done clearing commands
 [  191.138621] libertas host: PREP_CMD: done waiting for command 0x6
 [  191.143847] libertas leave: lbs_prepare_and_send_command():1640, ret 0
 [  191.150398] libertas enter: lbs_prepare_and_send_command():1388
 [  191.154542] libertas host: PREP_CMD: card removed
 [  191.159265] libertas leave: lbs_prepare_and_send_command():1640, ret -1
 [  191.164762] olpc-ec:  running cmd 0x1c
 [  191.172549] olpc-ec:  received 0xff
 [  191.173851] olpc-ec:  running cmd 0x1b
 [  191.178621] olpc-ec:  sending cmd arg 0xdf
 [  191.184092] libertas enter: lbs_cmd_async():2147
 [  191.188732] libertas enter: __lbs_cmd_async():2102
 [  191.193857] libertas host: PREP_CMD: card removed
 [  191.198576] libertas leave: __lbs_cmd_async():2140, ret fffffffe
 [  191.203845] libertas leave: lbs_cmd_async():2150
 [  191.209910] libertas: SCAN_CMD failed
 [  191.216839] olpc-ec:  running cmd 0x1c
 [  191.223637] olpc-ec:  received 0xdf
 [  191.223847] olpc-ec:  running cmd 0x1b
 [  191.228621] olpc-ec:  sending cmd arg 0xde
 [  191.296583] libertas enter: __lbs_cleanup_and_insert_cmd():1273
 [  191.302541] libertas leave: __lbs_cleanup_and_insert_cmd():1285
 [  191.313890] libertas enter: lbs_prepare_and_send_command():1388
 [  191.320088] libertas host: PREP_CMD: card removed
 [  191.324363] libertas leave: lbs_prepare_and_send_command():1640, ret -1
 [  191.331199] libertas: SCAN_CMD failed
 [  191.334177] libertas leave: lbs_process_rx_command():700, ret 0
 [  191.353855] libertas enter: lbs_execute_next_command():1812
 [  191.359658] libertas host: EXEC_NEXT_CMD: sending command 0x0006
 [  191.364859] libertas enter: lbs_submit_command():1230
 [  191.370576] olpc-ec:  running cmd 0x1c
 [  191.373754] olpc-ec:  received 0xde
 [  191.373831] olpc-ec:  running cmd 0x1b
 [  191.378606] olpc-ec:  sending cmd arg 0x9e
 [  191.383232] libertas cmd: DNLD_CMD: command 0x0006, seq 224, size 63,
 jiffies 4294956977
 [  191.384032] usb8xxx usbd: 2-1:*** type = 1
 [  191.388319] usb8xxx usbd: 2-1:size after = 63
 [  191.403848] usb8xxx usbd: 2-1:Device removed
 [  191.408335] libertas: DNLD_CMD: hw_host_to_card failed: -1
 [  191.414877] libertas leave: lbs_submit_command():1263
 [  191.420134] libertas leave: lbs_execute_next_command():1947
 [  191.433854] libertas thread: main-thread 111: intcounter=0
 currenttxskb=00000000 dnld_sent=2
 [  191.445364] olpc-ec:  running cmd 0x1c
 [  191.452156] olpc-ec:  received 0x9e
 [  191.453819] olpc-ec:  running cmd 0x1b
 [  191.458596] olpc-ec:  sending cmd arg 0x96
 [  191.465355] libertas thread: main-thread sleeping... Conn=0 IntC=0
 PS_mode=0 PS_State=0
 [  191.514357] olpc-ec:  running cmd 0x1c
 [  191.521159] olpc-ec:  received 0x96
 [  191.523840] olpc-ec:  running cmd 0x1b
 [  191.528614] olpc-ec:  sending cmd arg 0x92
 [  191.556649] olpc-ec:  running cmd 0x1c
 [  191.563446] olpc-ec:  received 0x92
 [  191.563843] olpc-ec:  running cmd 0x1b
 [  191.568617] olpc-ec:  sending cmd arg 0x90
 [  191.604470] PM: Syncing filesystems ... <6>ADDRCONF(NETDEV_CHANGE):
 msh0: link becomes ready
 [  191.753912] libertas thread: main-thread 222 (waking up): intcounter=0
 currenttxskb=00000000 dnld_sent=2
 [  191.765812] libertas thread: main-thread 333: intcounter=0
 currenttxskb=00000000 dnld_sent=2
 [  191.775750] libertas thread: adapter removed; waiting to die...
 [  191.781979] libertas thread: main-thread 111: intcounter=0
 currenttxskb=00000000 dnld_sent=2
 [  191.784035] libertas leave: lbs_stop_card():1364, ret -1
 [  191.789367] libertas enter: lbs_remove_card():1205
 [  191.794582] libertas enter: lbs_cmd_async():2147
 [  191.799217] libertas enter: __lbs_cmd_async():2102
 [  191.803927] libertas host: PREP_CMD: card removed
 [  191.808646] libertas leave: __lbs_cmd_async():2140, ret fffffffe
 [  191.813847] libertas leave: lbs_cmd_async():2150
 [  191.818779] libertas enter: lbs_prepare_and_send_command():1388
 [  191.823845] libertas host: PREP_CMD: card removed
 [  191.828567] libertas leave: lbs_prepare_and_send_command():1640, ret -1
 [  191.833835] libertas enter: lbs_prepare_and_send_command():1388
 [  191.839771] libertas host: PREP_CMD: card removed
 [  191.843832] libertas leave: lbs_prepare_and_send_command():1640, ret -1
 [  191.860251] libertas thread: main-thread sleeping... Conn=0 IntC=0
 PS_mode=0 PS_State=0
 [  191.894055] libertas enter: lbs_set_mac_control():1356
 [  191.899224] libertas enter: lbs_cmd_async():2147
 [  191.906072] libertas enter: __lbs_cmd_async():2102
 [  191.911157] libertas host: PREP_CMD: card removed
 [  191.914127] libertas leave: __lbs_cmd_async():2140, ret fffffffe
 [  191.920444] libertas leave: lbs_cmd_async():2150
 [  191.924124] libertas leave: lbs_set_mac_control():1364
 [  192.403830] libertas enter (INT): command_timer_fn():1016
 [  192.409261] libertas: Command 6 timed out
 [  192.413846] libertas leave (INT): command_timer_fn():1030
 [  192.419307] libertas thread: main-thread 222 (waking up): intcounter=0
 currenttxskb=00000000 dnld_sent=2
 [  192.423844] libertas thread: main-thread 333: intcounter=0
 currenttxskb=00000000 dnld_sent=2
 [  192.433846] libertas thread: adapter removed; waiting to die...
 [  192.439778] libertas thread: main-thread 111: intcounter=0
 currenttxskb=00000000 dnld_sent=2
 [  192.443917] libertas thread: main-thread sleeping... Conn=0 IntC=0
 PS_mode=0 PS_State=0
 [  192.743875] libertas main: lbs_remove_card: 1
 [  192.748271] libertas enter: lbs_remove_rtap():1594
 [  192.753842] libertas main: lbs_remove_card: 2
 [  192.758213] libertas main: lbs_remove_card: 3
 [  192.763844] libertas main: lbs_remove_card: 4
 [  192.768214] libertas main: lbs_remove_card: 5
 [  192.773963] libertas main: lbs_remove_card: 6
 [  192.778333] libertas main: lbs_remove_card: 8
 [  192.783873] libertas main: lbs_remove_card: 9
 [  192.823934] libertas thread: main-thread 222 (waking up): intcounter=0
 currenttxskb=00000000 dnld_sent=2
 [  192.833929] libertas thread: main-thread 333: intcounter=0
 currenttxskb=00000000 dnld_sent=2
 [  192.842479] libertas thread: main-thread: break from main thread
 [  192.843754] libertas leave: lbs_thread():907
 [  192.844021] libertas main: lbs_remove_card: 10
 [  192.848482] libertas enter: lbs_free_adapter():1104
 [  192.853469] libertas enter: lbs_free_cmd_buffer():1701
 [  192.853754] libertas leave: lbs_free_cmd_buffer():1726
 [  192.853836] libertas leave: lbs_free_adapter():1111
 [  192.858738] libertas leave: lbs_remove_card():1247
 [  192.863822] usb8xxx enter: if_usb_free():147
 [  192.868122] usb8xxx leave: if_usb_free():162
 [  192.872495] usb8xxx leave: if_usb_disconnect():359
 [  199.466577] done.
 [  199.468892] PM: Preparing system for mem sleep
 [  199.483912] Freezing user space processes ... (elapsed 0.02 seconds)
 done.
 [  199.521128] Freezing remaining freezable tasks ... (elapsed 0.01
 seconds) done.
 [  199.544480] PM: Entering mem sleep
 [  199.547892] Suspending console(s)
 }}}

-- 
Ticket URL: <http://dev.laptop.org/ticket/8301#comment:39>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system


More information about the Bugs mailing list