• Patrick Mochel's avatar
    driver model: fix bogus driver binding error reporting and handling. · 7054c2c1
    Patrick Mochel authored
    Some error checking was added ca. 2.5.58 that would remove a device from 
    its bus's list of devices if device_attach() returned an error. This 
    included errors returned from drv->probe(), and the -ENODEV error returned
    if the device wasn't bound to any driver.
    
    This was BAD since it was perfectly fine for a device not to bind to a 
    driver immediately, and for drivers to return an error on probe() if the 
    device doesn't exactly qualify as one it supports. 
    
    This changes device_attach() and driver_attach() to both return void, 
    instead of an error, since they really can never fail hard enough to cause
    the device or driver to be removed from the bus. 
    7054c2c1
bus.c 13.6 KB