#1757 NORM Untriag: EC communication liable to deadlock.

Zarro Boogs per Child bugtracker at laptop.org
Tue Jun 19 03:49:24 EDT 2007


#1757: EC communication liable to deadlock.
--------------------+-------------------------------------------------------
 Reporter:  dwmw2   |       Owner:  jg       
     Type:  defect  |      Status:  new      
 Priority:  normal  |   Milestone:  Untriaged
Component:  distro  |     Version:           
 Keywords:          |    Verified:  0        
--------------------+-------------------------------------------------------
 In the olpc_ec_cmd() function we lock the 'ec_lock' spinlock.
 Then we can take an IRQ. It could be an SCI.
 We could call back into olpc_ec_cmd() to query the EC about the cause of
 the SCI.
 We'll try to lock the ec_lock spinlock again.
 We'll fail.

 While I'm looking at it... when olpc_pm_interrupt() detects an SCI, it
 first processes the queue, then clears the edge-detected status of the
 GPIO pin. But what if another SCI happens between those two events? Don't
 we miss it? Why is this edge-triggered anyway? Everything should be level-
 triggered, surely?

-- 
Ticket URL: <http://dev.laptop.org/ticket/1757>
One Laptop Per Child <http://laptop.org/>



More information about the Bugs mailing list