[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