#9779 BLOC 1.5-sof: Wakeup key is repeated

Zarro Boogs per Child bugtracker at laptop.org
Sat Dec 5 16:35:17 EST 2009


#9779: Wakeup key is repeated
--------------------------------+-------------------------------------------
           Reporter:  cjb       |       Owner:  rsmith           
               Type:  defect    |      Status:  new              
           Priority:  blocker   |   Milestone:  1.5-software-beta
          Component:  kernel    |     Version:  not specified    
         Resolution:            |    Keywords:                   
        Next_action:  diagnose  |    Verified:  0                
Deployment_affected:            |   Blockedby:                   
           Blocking:            |  
--------------------------------+-------------------------------------------

Comment(by wmb at firmworks.com):

 Just to be explicit, I believe that the code that needs to be skipped per
 above absolutely will cause the observed false-repeat symptom, depending
 on an uncontrollable race condition between the OS issuing the commands
 and the keyboard sending the break event from the other direction.

 The __i8042_command() routine does not attempt to distinguish between
 valid command response bytes and interspersed events from the keyboard.
 It is in fact possible at the protocol level to make the distinction (the
 value sets for the two cases are disjoint), but would add some complexity
 to the command response parsing logic (it would have to do a range check
 and redirect data events to a queue).  According to my reading of
 __i8042_command(), it does not make the distinction, instead just counting
 N incoming bytes and stuffing them in the param[] array. That being the
 case, __i8042_command() *will* eat keyboard events if they happen during a
 window of vulnerability.

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


More information about the Bugs mailing list