From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dmitry Osipenko Date: Fri, 10 Dec 2021 19:38:06 +0000 Subject: Re: [PATCH v4 06/25] reboot: Warn if unregister_restart_handler() fails Message-Id: <41415df9-0d08-2944-5cf2-493468e21a22@gmail.com> List-Id: References: <20211126180101.27818-1-digetx@gmail.com> <20211126180101.27818-7-digetx@gmail.com> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: "Rafael J. Wysocki" Cc: Thierry Reding , Jonathan Hunter , Russell King , Catalin Marinas , Will Deacon , Guo Ren , Geert Uytterhoeven , Greg Ungerer , Joshua Thompson , Thomas Bogendoerfer , Sebastian Reichel , Linus Walleij , Philipp Zabel , Greentime Hu , Vincent Chen , "James E.J. Bottomley" , Helge Deller , Michael Ellerman , Benjamin Herrenschmidt , Paul Mackerras , Paul Walmsley , Palmer Dabbelt , Albert Ou , Yoshinori Sato , Rich Felker , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , the arch/x86 maintainers , "H. Peter Anvin" , Boris Ostrovsky , Juergen Gross , Stefano Stabellini , Len Brown , Santosh Shilimkar , Krzysztof Kozlowski , Liam Girdwood , Mark Brown , Pavel Machek , Lee Jones , Andrew Morton , Guenter Roeck , Daniel Lezcano , Andy Shevchenko , Ulf Hansson , alankao@andestech.com, "K . C . Kuen-Chern Lin" , Linux ARM , Linux Kernel Mailing List , linux-csky@vger.kernel.org, linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org, linuxppc-dev , linux-riscv@lists.infradead.org, Linux-sh list , xen-devel@lists.xenproject.org, ACPI Devel Maling List , Linux PM , linux-tegra 10.12.2021 22:08, Rafael J. Wysocki пишет: > On Fri, Dec 10, 2021 at 7:54 PM Dmitry Osipenko wrote: >> >> 10.12.2021 21:32, Rafael J. Wysocki пишет: >>> On Fri, Nov 26, 2021 at 7:02 PM Dmitry Osipenko wrote: >>>> >>>> Emit warning if unregister_restart_handler() fails since it never should >>>> fail. This will ease further API development by catching mistakes early. >>>> >>>> Signed-off-by: Dmitry Osipenko >>>> --- >>>> kernel/reboot.c | 2 +- >>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>> >>>> diff --git a/kernel/reboot.c b/kernel/reboot.c >>>> index e6659ae329f1..f0e7b9c13f6b 100644 >>>> --- a/kernel/reboot.c >>>> +++ b/kernel/reboot.c >>>> @@ -210,7 +210,7 @@ EXPORT_SYMBOL(register_restart_handler); >>>> */ >>>> int unregister_restart_handler(struct notifier_block *nb) >>>> { >>>> - return atomic_notifier_chain_unregister(&restart_handler_list, nb); >>>> + return WARN_ON(atomic_notifier_chain_unregister(&restart_handler_list, nb)); >>> >>> The only reason why it can fail is if the object pointed to by nb is >>> not in the chain. >> >> I had exactly this case where object wasn't in the chain due to a bug >> and this warning was very helpful. > > During the development. In production it would be rather annoying. > >>> Why WARN() about this? And what about systems with >>> panic_on_warn set? >> >> That warning condition will never happen normally, only when something >> is seriously wrong. >> >> Those systems with panic_on_warn will get what was they asked for. > > They may not be asking for panicking on bugs in the reboot notifier > code, though. That's what your change is making them panic on. > Alright, I'll drop the warnings and turn the warning about uniqueness into error or warning message.