Re: [PATCH v4 06/25] reboot: Warn if unregister_restart_handler() fails

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



10.12.2021 22:08, Rafael J. Wysocki пишет:
On Fri, Dec 10, 2021 at 7:54 PM Dmitry Osipenko <digetx@xxxxxxxxx> wrote:

10.12.2021 21:32, Rafael J. Wysocki пишет:
On Fri, Nov 26, 2021 at 7:02 PM Dmitry Osipenko <digetx@xxxxxxxxx> 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 <digetx@xxxxxxxxx>
---
 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.



[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux