Skip to content
  • Milton Miller's avatar
    of: fix race when matching drivers · 01294d82
    Milton Miller authored
    
    
    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: default avatarMeelis Roos <mroos@linux.ee>
    Signed-off-by: default avatarMilton Miller <miltonm@bga.com>
    [grant.likely: modified to only call of_match_device() once]
    Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
    01294d82