#7973 BLOC 8.2.0 (: libertas unknown event IDs and hang
Zarro Boogs per Child
bugtracker at laptop.org
Fri Aug 15 14:25:40 EDT 2008
#7973: libertas unknown event IDs and hang
------------------------+---------------------------------------------------
Reporter: cjb | Owner: dsaxena
Type: defect | Status: new
Priority: blocker | Milestone: 8.2.0 (was Update.2)
Component: kernel | Version: not specified
Resolution: | Keywords:
Next_action: diagnose | Verified: 0
Blockedby: | Blocking:
------------------------+---------------------------------------------------
Comment(by dsaxena):
Replying to [comment:10 wmb at firmworks.com]:
> I think it's nearly certain that the event IDs listed in the original
description are bogus. The legitimate event IDs are small integers
between 0 and 48 (0x30) or thereabouts.
>
> The offending event ID, represented in hex, are 0x500, 0x3202, 0x9007,
0xa000, 0xb000, 0x6fd5, 0x72f5, 0x8000. Those numbers just don't look
anything like the real IDs, not even with a few high bits set.
>
> So I dsaxena's suggestion that either the wireless FW is going nuts or
the driver's FIFO is getting corrupted. I'd bet on the former, but it's
very easy to eliminate the latter, just to make sure. Just modify the
driver to check the event ID before putting it in the queue, logging a
message if the ID value exceeds the largest known ID value.
I'm not sure how, but I completely misread something in the driver
yesterday. I've been looking at a variety of bugs so I may have miss-
merged two pieces of information.
We don't store the events in a FIFO but just process them as they come in.
An event is received via an URB packet and the USB I/F drives copies it
(u32) before the URB is discarded then pokes a bit to let the main thread
know there is an event pending. The main thread just reads the event from
the USB driver. The variable storing the event in USB driver is only
written to in one place in the driver so what we process is what we're
getting from HW unless we have memory corruption which I'm going to
completely rule out as a possibility given that we can reproduce this on
multiple laptops.
You can do "echo 0x00020000 > /sys/module/libertas/parameters" to enable
USB debug and see the "EVENT" flags come in (along with lots of other
debug info).
--
Ticket URL: <http://dev.laptop.org/ticket/7973#comment:11>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system
More information about the Bugs
mailing list