#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