driver model: fix bogus driver binding error reporting and handling.
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.
Showing
Please register or sign in to comment