#9836 BLOC 1.5-sof: BUG() in if_sdio_handle_cmd()
Zarro Boogs per Child
bugtracker at laptop.org
Wed Jan 6 09:09:33 EST 2010
#9836: BUG() in if_sdio_handle_cmd()
--------------------------------+-------------------------------------------
Reporter: dsaxena | Owner: dsaxena
Type: defect | Status: new
Priority: blocker | Milestone: 1.5-software-update
Component: kernel | Version: 1.5-B3
Resolution: | Keywords:
Next_action: diagnose | Verified: 0
Deployment_affected: | Blockedby:
Blocking: |
--------------------------------+-------------------------------------------
Comment(by dsd):
sequence of events:
* cmd 6 (scan) submitted
* cmd 6 response received
* system starts to suspend
* cmd 43 (host sleep cfg) submitted
* cmd 43 response received
* cmd 45 (host sleep activate) submitted
* cmd 45 response received
* CPU goes to sleep
* CPU woken up by incoming packet
* event 1 arrives (unknown)
* event 18 arrives (MACREG_INT_CODE_HOST_AWAKE)
* NOTE: this event does arrive on every resume. in fact, it can be seen
as the cause of the crash - when it arrives, the crash happens soon after
* in response to event 18, lbs_send_confirmwake() '''directly''' submits
cmd 44 (wakeup confirm) (without going through the normal
queuing/threading infrastructure) '''and does not wait for response'''
* cmd 6 (scan) submitted as normal
* cmd 44 response received (wakeup confirm)
* full response contents: 44 80 08 00 ae 00 00 00
* '''not processed''' due to what happens immediately after...:
* cmd 6 response received
* cmd 43 (host sleep cfg) submitted
* cmd 43 response received but this triggers the BUG() due to attempting
to overwrite the unprocessed wakeup confirm response from above
so, 2 issues at hand:
1. firmware only generates event 18 sometimes - shouldn't it be
consistent?
2. handling of event 18 submits cmd 44 without expecting or waiting for a
response
--
Ticket URL: <http://dev.laptop.org/ticket/9836#comment:20>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system
More information about the Bugs
mailing list