[PATCH 1/2] of: fix race when matching drivers

David Miller davem at davemloft.net
Thu May 19 07:03:40 EST 2011


From: Grant Likely <grant.likely at secretlab.ca>
Date: Wed, 18 May 2011 13:21:00 -0600

> From: Milton Miller <miltonm at bga.com>
> 
> If two drivers are probing devices at the same time, both will write
> their match table result to the dev->of_match cache at the same time.
> 
> Only write the result if the device matches.
> 
> In a thread titled "SBus devices sometimes detected, sometimes not",
> Meelis reported his SBus hme was not detected about 50% of the time.
>>From the debug suggested by Grant it was obvious another driver matched
> some devices between the call to match the hme and the hme discovery
> failling.
> 
> Reported-by: Meelis Roos <mroos at linux.ee>
> Signed-off-by: Milton Miller <miltonm at bga.com>
> [grant.likely: modified to only call of_match_device() once]
> Signed-off-by: Grant Likely <grant.likely at secretlab.ca>

Tested on SunBlade2500 and Niagara2+

Acked-by: David S. Miller <davem at davemloft.net>


More information about the devicetree-discuss mailing list