Re: [PATCH v7 03/20] reboot: Print error message if restart handler has duplicated priority

From: Rafael J. Wysocki
Date: Wed Apr 13 2022 - 14:48:36 EST


On Tue, Apr 12, 2022 at 1:39 AM Dmitry Osipenko
<dmitry.osipenko@xxxxxxxxxxxxx> wrote:
>
> Add sanity check which ensures that there are no two restart handlers
> registered using the same priority. This requirement will become mandatory
> once all drivers will be converted to the new API and such errors will be
> fixed.
>
> Signed-off-by: Dmitry Osipenko <dmitry.osipenko@xxxxxxxxxxxxx>

The first two patches in the series are fine with me and there's only
one minor nit regarding this one (below).

> ---
> kernel/reboot.c | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/kernel/reboot.c b/kernel/reboot.c
> index ed4e6dfb7d44..acdae4e95061 100644
> --- a/kernel/reboot.c
> +++ b/kernel/reboot.c
> @@ -182,6 +182,21 @@ static ATOMIC_NOTIFIER_HEAD(restart_handler_list);
> */
> int register_restart_handler(struct notifier_block *nb)
> {
> + int ret;
> +
> + ret = atomic_notifier_chain_register_unique_prio(&restart_handler_list, nb);
> + if (ret != -EBUSY)
> + return ret;
> +
> + /*
> + * Handler must have unique priority. Otherwise call order is
> + * determined by registration order, which is unreliable.
> + *
> + * This requirement will become mandatory once all drivers
> + * will be converted to use new sys-off API.
> + */
> + pr_err("failed to register restart handler using unique priority\n");

I would use pr_info() here, because this is not a substantial error AFAICS.

> +
> return atomic_notifier_chain_register(&restart_handler_list, nb);
> }
> EXPORT_SYMBOL(register_restart_handler);
> --