If driver_register() is called with an device driver which previously called bus_register() but failed, then print out the bus_register() error code.
Signed-off-by: Florian Schmaus <[email protected]> --- Notes: Make it clear in the error message that the error code is from the bus registration and *not* from the driver registration. drivers/base/driver.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/base/driver.c b/drivers/base/driver.c index 857c8f1b876e..b21fed9687c9 100644 --- a/drivers/base/driver.c +++ b/drivers/base/driver.c @@ -149,8 +149,14 @@ int driver_register(struct device_driver *drv) struct device_driver *other; if (!drv->bus->p) { - pr_err("Driver '%s' was unable to register with bus_type '%s' because the bus was not initialized.\n", - drv->name, drv->bus->name); + if (drv->bus->bus_register_error) { + pr_err("Driver '%s' was unable to register with bus_type '%s' because bus registration failed with error %d.\n", + drv->name, drv->bus->name, + drv->bus->bus_register_error); + } else { + pr_err("Driver '%s' was unable to register with bus_type '%s' because the bus was not initialized.\n", + drv->name, drv->bus->name); + } return -EINVAL; } -- 2.16.1

