#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