drivers/staging/greybus/gbphy.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
Currently, if driver_register() fails, it just returns retval
and fails silently. This behavior may make the error more difficult
to debug, as the error is not logged.
Adding pr_err() here will log the error descriptively, along with
driver name and the value that retval returned. That way, the error
is not silent and the user can see what happened.
Signed-off-by: Steven Davis <goldside000@outlook.com>
---
drivers/staging/greybus/gbphy.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/staging/greybus/gbphy.c b/drivers/staging/greybus/gbphy.c
index 6adcad286..c6d1030b7 100644
--- a/drivers/staging/greybus/gbphy.c
+++ b/drivers/staging/greybus/gbphy.c
@@ -204,8 +204,10 @@ int gb_gbphy_register_driver(struct gbphy_driver *driver,
driver->driver.mod_name = mod_name;
retval = driver_register(&driver->driver);
- if (retval)
+ if (retval) {
+ pr_err("failed to register driver %s: %d\n", driver->name, retval);
return retval;
+ }
pr_info("registered new driver %s\n", driver->name);
return 0;
--
2.39.5
On Sat, Dec 28, 2024 at 04:57:44PM +0000, Steven Davis wrote:
> Currently, if driver_register() fails, it just returns retval
> and fails silently. This behavior may make the error more difficult
> to debug, as the error is not logged.
>
> Adding pr_err() here will log the error descriptively, along with
> driver name and the value that retval returned. That way, the error
> is not silent and the user can see what happened.
>
> Signed-off-by: Steven Davis <goldside000@outlook.com>
> ---
> drivers/staging/greybus/gbphy.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/staging/greybus/gbphy.c b/drivers/staging/greybus/gbphy.c
> index 6adcad286..c6d1030b7 100644
> --- a/drivers/staging/greybus/gbphy.c
> +++ b/drivers/staging/greybus/gbphy.c
> @@ -204,8 +204,10 @@ int gb_gbphy_register_driver(struct gbphy_driver *driver,
> driver->driver.mod_name = mod_name;
>
> retval = driver_register(&driver->driver);
> - if (retval)
> + if (retval) {
> + pr_err("failed to register driver %s: %d\n", driver->name, retval);
Is this really an issue in real-world situations? Have you run across
this where this failed and knowing the return value of driver_register()
helped out?
And if you are using this driver, great! Let's get it cleaned up and
out of drivers/staging/ please! Otherwise we really should just remove
them :(
thanks,
greg k-h
© 2016 - 2026 Red Hat, Inc.