aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/tty/sysrq.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
index 814655ee2d61..3687f0cad642 100644
--- a/drivers/tty/sysrq.c
+++ b/drivers/tty/sysrq.c
@@ -870,21 +870,20 @@ static struct input_handler sysrq_handler = {
870 870
871static bool sysrq_handler_registered; 871static bool sysrq_handler_registered;
872 872
873unsigned short platform_sysrq_reset_seq[] __weak = { KEY_RESERVED };
874
873static inline void sysrq_register_handler(void) 875static inline void sysrq_register_handler(void)
874{ 876{
875 extern unsigned short platform_sysrq_reset_seq[] __weak;
876 unsigned short key; 877 unsigned short key;
877 int error; 878 int error;
878 int i; 879 int i;
879 880
880 if (platform_sysrq_reset_seq) { 881 for (i = 0; i < ARRAY_SIZE(sysrq_reset_seq); i++) {
881 for (i = 0; i < ARRAY_SIZE(sysrq_reset_seq); i++) { 882 key = platform_sysrq_reset_seq[i];
882 key = platform_sysrq_reset_seq[i]; 883 if (key == KEY_RESERVED || key > KEY_MAX)
883 if (key == KEY_RESERVED || key > KEY_MAX) 884 break;
884 break;
885 885
886 sysrq_reset_seq[sysrq_reset_seq_len++] = key; 886 sysrq_reset_seq[sysrq_reset_seq_len++] = key;
887 }
888 } 887 }
889 888
890 error = input_register_handler(&sysrq_handler); 889 error = input_register_handler(&sysrq_handler);