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); > --