Lines Matching refs:sysrq
30 #include <linux/sysrq.h>
58 /* Whether we react on sysrq keys or just ignore them */
70 * Return: 1 if sysrq is always enabled, enabled sysrq_key_op mask otherwise.
93 pr_info("sysrq always enabled.\n");
154 panic("sysrq triggered crash\n");
355 * Signal sysrq helper function. Sends a signal to all user processes.
584 * Raise the apparent loglevel to maximum so that the sysrq header
595 * Should we check for enabled operations (/proc/sysrq-trigger
603 pr_info("This sysrq operation is disabled.\n");
765 np = of_find_node_by_path("/chosen/linux,sysrq-reset-seq");
767 pr_debug("No sysrq node found");
795 struct sysrq_state *sysrq =
797 struct input_handle *handle = &sysrq->handle;
798 unsigned int alt_code = sysrq->alt_use;
800 if (sysrq->need_reinject) {
802 sysrq->reinjecting = true;
815 sysrq->reinjecting = false;
819 static bool sysrq_handle_keypress(struct sysrq_state *sysrq,
822 bool was_active = sysrq->active;
831 if (sysrq->active && code == sysrq->alt_use)
832 sysrq->active = false;
834 sysrq->alt = KEY_RESERVED;
837 sysrq->alt = code;
838 sysrq->need_reinject = false;
845 sysrq->shift = KEY_RESERVED;
847 sysrq->shift = code;
848 if (sysrq->active)
849 sysrq->shift_use = sysrq->shift;
853 if (value == 1 && sysrq->alt != KEY_RESERVED) {
854 sysrq->active = true;
855 sysrq->alt_use = sysrq->alt;
857 sysrq->shift_use = sysrq->shift;
862 sysrq->need_reinject = true;
866 * Pretend that sysrq was never pressed at all. This
873 if (sysrq->active)
874 clear_bit(KEY_SYSRQ, sysrq->handle.dev->key);
879 if (sysrq->active && value && value != 2) {
882 sysrq->need_reinject = false;
883 if (sysrq->shift_use != KEY_RESERVED)
890 suppress = sysrq->active;
892 if (!sysrq->active) {
897 if (sysrq->reset_seq_version != sysrq_reset_seq_version)
898 sysrq_parse_reset_sequence(sysrq);
906 set_bit(code, sysrq->key_down);
908 clear_bit(code, sysrq->key_down);
911 schedule_work(&sysrq->reinject_work);
914 sysrq_detect_reset_sequence(sysrq, code, value);
916 } else if (value == 0 && test_and_clear_bit(code, sysrq->key_down)) {
930 struct sysrq_state *sysrq = handle->private;
937 if (sysrq->reinjecting)
947 suppress = sysrq_handle_keypress(sysrq, code, value);
951 suppress = sysrq->active;
962 struct sysrq_state *sysrq;
965 sysrq = kzalloc(sizeof(struct sysrq_state), GFP_KERNEL);
966 if (!sysrq)
969 INIT_WORK(&sysrq->reinject_work, sysrq_reinject_alt_sysrq);
971 sysrq->handle.dev = dev;
972 sysrq->handle.handler = handler;
973 sysrq->handle.name = "sysrq";
974 sysrq->handle.private = sysrq;
975 timer_setup(&sysrq->keyreset_timer, sysrq_do_reset, 0);
977 error = input_register_handle(&sysrq->handle);
979 pr_err("Failed to register input sysrq handler, error %d\n",
984 error = input_open_device(&sysrq->handle);
993 input_unregister_handle(&sysrq->handle);
995 kfree(sysrq);
1001 struct sysrq_state *sysrq = handle->private;
1004 cancel_work_sync(&sysrq->reinject_work);
1005 timer_shutdown_sync(&sysrq->keyreset_timer);
1007 kfree(sysrq);
1029 .name = "sysrq",
1152 * writing 'C' to /proc/sysrq-trigger is like sysrq-C
1175 if (!proc_create("sysrq-trigger", S_IWUSR, NULL,