On Mon, Jun 14 2021, Christoph Hellwig hch@lst.de wrote:
From: Jason Gunthorpe jgg@nvidia.com
This is intended as a replacement API for device_bind_driver(). It has at least the following benefits:
Internal locking. Few of the users of device_bind_driver() follow the locking rules
Calls device driver probe() internally. Notably this means that devm support for probe works correctly as probe() error will call devres_release_all()
struct device_driver -> dev_groups is supported
Simplified calling convention, no need to manually call probe().
The general usage is for situations that already know what driver to bind and need to ensure the bind is synchronized with other logic. Call device_driver_attach() after device_add().
If probe() returns a failure then this will be preserved up through to the error return of device_driver_attach().
Signed-off-by: Jason Gunthorpe jgg@nvidia.com Signed-off-by: Christoph Hellwig hch@lst.de
drivers/base/base.h | 1 - drivers/base/dd.c | 3 +++ include/linux/device.h | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-)
Reviewed-by: Cornelia Huck cohuck@redhat.com