#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:01:28 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 dcbw):

 So here's the problem...  priv->work_queue is a generic worker thread that
 executes commands, including SCAN.  In newlibertas5.cap, the worker thread
 is blocked in lbs_do_scan() waiting for the queued scan command to finish.
 When lbs_remove_card() is called, it calls destroy_workqueue() which
 blocks on the worker finishing, but priv->work_queue is blocked waiting
 for the command to finish, so there's the hang.

 What's not clear yet is why the bits in lbs_stop_card() aren't clearing
 the command and waking up the priv->work_queue and making the
 lbs_prepare_and_send_command() in lbs_do_scan() return with an error so
 that the scan work completes.

 My current theory is that killing the current in-flight command is
 mishandled.

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


More information about the Bugs mailing list