Hi, On Wed, Nov 08, 2023 at 08:27:57PM +0300, Nikita Kiryushin wrote: > If registering restart handler fails for msm-restart result is not checked. > It may be irrelevant now (as stated in comment to register_restart_handler, > the function currently always returns zero), but if the behavior changes > in the future, an error at registration of handler will be silently skipped. > > Add return error code and print error message too debug log in case of > non-zero result of register_restart_handler. > > Found by Linux Verification Center (linuxtesting.org) with SVACE. > > Fixes: 18a702e0de98 ("power: reset: use restart_notifier mechanism for > msm-poweroff") > > Signed-off-by: Nikita Kiryushin <kiryushin@xxxxxxxx> > --- If register_restart_handler fails, it might actually be a good idea to continue and at least have a poweroff handler :) > drivers/power/reset/msm-poweroff.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/power/reset/msm-poweroff.c > b/drivers/power/reset/msm-poweroff.c > index b9a401bd280b..5877a1ba2778 100644 > --- a/drivers/power/reset/msm-poweroff.c > +++ b/drivers/power/reset/msm-poweroff.c > @@ -35,11 +35,16 @@ static void do_msm_poweroff(void) > static int msm_restart_probe(struct platform_device *pdev) > { > + int ret = -EINVAL; no need to initialize, it's overwritten before being used. > msm_ps_hold = devm_platform_ioremap_resource(pdev, 0); > if (IS_ERR(msm_ps_hold)) > return PTR_ERR(msm_ps_hold); > - register_restart_handler(&restart_nb); > + ret = register_restart_handler(&restart_nb); > + if (ret) { > + dev_err(&pdev->dev, "unable to register restart handler, %d\n", ret); > + return ret; There is dev_err_probe() for this, but as mentioned above it's more sensible not to fail here. -- Sebastian > + } > pm_power_off = do_msm_poweroff; > -- 2.34.1 >
Attachment:
signature.asc
Description: PGP signature