#12030 NORM 12.1.0: XO-1.5 "irq 22: nobody cared" when going into suspend

Zarro Boogs per Child bugtracker at laptop.org
Tue Jul 31 20:52:44 EDT 2012


#12030: XO-1.5 "irq 22: nobody cared" when going into suspend
--------------------------------+-------------------------------------------
           Reporter:  dsd       |       Owner:  dsd          
               Type:  defect    |      Status:  new          
           Priority:  normal    |   Milestone:  12.1.0       
          Component:  kernel    |     Version:  not specified
         Resolution:            |    Keywords:               
        Next_action:  diagnose  |    Verified:  0            
Deployment_affected:            |   Blockedby:               
           Blocking:            |  
--------------------------------+-------------------------------------------

Comment(by dsd):

 Looking a bit more, this would fit perfectly with the logs shown above.
 The fact that the "nobody cared" message doesn't show sdhci as an IRQ
 handler suggests that the suspend routine has already completed, and the
 message that comes up soon after:

 {{{
 [ 3214.040024] mmc2: Timeout waiting for hardware interrupt.
 }}}

 comes from sdhci_timeout_timer which is the trigger for the timer in
 question.

 I think we can't just call del_timer_sync() here - we need to let the
 command complete (or time out) and then pass the results back to whoever
 invoked the command, etc. Looking for how to wait for completion of this
 timer, it looks like the "finish condition" for this work is the call to
 mmc_request_done(). So maybe the MMC layer should have finished all
 requests when it was told to suspend. I guess we need some code like this
 in mmc_suspend_host():

 {{{
         if (host->areq) {
                 mmc_wait_for_req_done(host, host->areq->mrq);
                 err = host->areq->err_check(host->card, host->areq);
                 if (err) {
                         /* post process the completed failed request */
                         mmc_post_req(host, host->areq->mrq, 0);
                         host->areq = NULL;
                 }
         }
 }}}
 (the above comes from mmc_start_req)

-- 
Ticket URL: <http://dev.laptop.org/ticket/12030#comment:7>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system


More information about the Bugs mailing list