[patch v4 0/4] Cypress c67x00 (EZ-Host/EZ-OTG) support
    Peter Korsgaard 
    jacmet at sunsite.dk
       
    Tue Jan 29 08:01:30 EST 2008
    
    
  
>>>>> "Grant" == Grant Likely <grant.likely at secretlab.ca> writes:
Hi,
 Grant> I've now merged the driver into my tree and tested it.
 Grant> The good news is that using only one device node is absolutely
 Grant> no problem.  It works without error or complaint and sysfs
 Grant> looks sane.
Great.
 Grant> The bad news is that I discovered a race condition on
 Grant> initialization.  The problem is that IRQs are enabled before
 Grant> the SIEs are configured.  The interrupt handler is firing
 Grant> immediately and tries to get the status of each SIE.  Since
 Grant> the SIE probe has not yet occured, sie->dev is NULL and we get
 Grant> a kernel oops when c67x00_ll_get_siemsg() tries to dereference
 Grant> it.
Not so great. I unfortunately don't see it here.
 Grant> However, register_irq() cannot be easily moved to after the
 Grant> SIE probe because the current probe code depends on interrupts
 Grant> being enabled.  Below is an ugly workaround that solves the
 Grant> problem to me, but there is probably a better solution.
Wouldn't it be simpler to just add a if (sie->dev) check to
_ll_get_siemsg()? Or doesn't the hcd init properly reinitialize the
device?
-- 
Bye, Peter Korsgaard
    
    
More information about the Linuxppc-dev
mailing list