sysrq: Remove sysrq_handler_registered
authorDmitry Safonov <dima@arista.com>
Fri, 13 Dec 2019 00:06:00 +0000 (00:06 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 17 Dec 2019 13:46:23 +0000 (14:46 +0100)
sysrq_toggle_support() can be called in parallel, in return calling
input_(un)register_handler(), which fortunately is safe to call
in parallel and regardless of registered/unregistered status of
sysrq_handler.
Remove sysrq_handler_registered as it doesn't have any function there
and may confuse reader about possible race.

Signed-off-by: Dmitry Safonov <dima@arista.com>
Link: https://lore.kernel.org/r/20191213000657.931618-2-dima@arista.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/sysrq.c

index 573b205..1d4f317 100644 (file)
@@ -967,8 +967,6 @@ static struct input_handler sysrq_handler = {
        .id_table       = sysrq_ids,
 };
 
-static bool sysrq_handler_registered;
-
 static inline void sysrq_register_handler(void)
 {
        int error;
@@ -978,16 +976,11 @@ static inline void sysrq_register_handler(void)
        error = input_register_handler(&sysrq_handler);
        if (error)
                pr_err("Failed to register input handler, error %d", error);
-       else
-               sysrq_handler_registered = true;
 }
 
 static inline void sysrq_unregister_handler(void)
 {
-       if (sysrq_handler_registered) {
-               input_unregister_handler(&sysrq_handler);
-               sysrq_handler_registered = false;
-       }
+       input_unregister_handler(&sysrq_handler);
 }
 
 static int sysrq_reset_seq_param_set(const char *buffer,