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

Zarro Boogs per Child bugtracker at laptop.org
Thu Sep 4 01:41:20 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
Next_action:  diagnose  |    Verified:  0                      
  Blockedby:            |    Blocking:                         
------------------------+---------------------------------------------------

Comment(by dilinger):

 Something's screwy with command_timer here.  I can physically remove the
 harware (libertas usb dongle) or remove the usb8xxx module, and rather
 than lbs functionality immediately stopping... I can watch ping hang for a
 few seconds, or get "usbcore: deregistering interface driver usb8xxx"
 followed by (a few seconds later) "libertas: Command 6 timed out".  That
 should _not_ be happening...

 lbs_add_card (called from if_usb_probe) inits command_timer;
 lbs_remove_card should be deleting the timer (synchronously!).  Instead,
 it appears to call kthread_stop on lbs_thread, which then deletes
 command_timer before exiting.  Problems include:
 1) it deletes the timer asynchronously.  we should be calling
 del_timer_sync.
 2) kthread_stop doesn't immediately stop the thread, so we're hanging for
 a few seconds somewhere before checking kthread_should_stop.

 I also don't see URB errors (which the host controller should be setting,
 if the libertas driver is in the middle of an URB submission), so.. my
 theory is that we're not currently waiting on an URB submission, but
 elsewhere in lbs_thread.

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


More information about the Bugs mailing list