#6589 BLOC Update.: xo stops responding to mesh path requests frames
Zarro Boogs per Child
bugtracker at laptop.org
Thu Apr 17 13:21:27 EDT 2008
#6589: xo stops responding to mesh path requests frames
-----------------------+----------------------------------------------------
Reporter: jcardona | Owner: dwmw2
Type: defect | Status: new
Priority: blocker | Milestone: Update.1
Component: wireless | Version:
Resolution: | Keywords:
Verified: 1 | Blocking:
Blockedby: |
-----------------------+----------------------------------------------------
Comment(by ashish):
Replying to [comment:19 dwmw2]:
> We should already be waiting for 200ms after sending the final block of
the firmware.
> That wait_event_interruptible() will stay asleep until woken either by
the {{{if_usb_fw_timeo()}}} function, or by {{{if_usb_receive_fwload()}}}
upon receiving the {{{FIRMWARE_READY}}} event.
>
> We reset the timer to 200ms immediately before setting
{{{cardp->fwdnldover}}} after sending the final block (again, in
{{{if_usb_receive_fwload()}}}, so execution in
{{{if_usb_prog_firmware()}}} shouldn't resume sooner.
>
> The only possible exception I see is if it's interrupted by a signal
while it's waiting for the event. We should probably change that
{{{wait_event_interruptible()}}} to just {{{wait_event()}}}.
>
> Or is it that 200ms is not enough, and we just need to be waiting for
longer?
Unfortunately, I missed this part of the code. 200ms wait is long enough
when driver could not receive FIRMWARE_READY event. In the current
implementation there is possiblity of firmware bug as I could see HW_SPEC
(0x3) command echoed back without any change in command parameters. This
might be becuase as soon as driver gets FIRMWARE_READY it resumes card
initialization and issues HW_SPEC (0x3) command and firmware might have
failed to send back proper response.
Interestingly, enabling libertas debug log during XO boot-up always gives
expected result (proper MAC and other information). So adding a small
delay (either in form of debug log o/p delay or fixed wait 200ms, can be
much lower but not experimented) after firmware download somehow prevents
this race.
I will update here with more information shortly.
--
Ticket URL: <http://dev.laptop.org/ticket/6589#comment:20>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system
More information about the Bugs
mailing list