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");
353 * Signal sysrq helper function. Sends a signal to all user processes.
587 * Raise the apparent loglevel to maximum so that the sysrq header
598 * Should we check for enabled operations (/proc/sysrq-trigger
606 pr_info("This sysrq operation is disabled.\n");
768 np = of_find_node_by_path("/chosen/linux,sysrq-reset-seq");
770 pr_debug("No sysrq node found");
798 struct sysrq_state *sysrq =
800 struct input_handle *handle = &sysrq->handle;
801 unsigned int alt_code = sysrq->alt_use;
803 if (sysrq->need_reinject) {
805 sysrq->reinjecting = true;
818 sysrq->reinjecting = false;
822 static bool sysrq_handle_keypress(struct sysrq_state *sysrq,
825 bool was_active = sysrq->active;
834 if (sysrq->active && code == sysrq->alt_use)
835 sysrq->active = false;
837 sysrq->alt = KEY_RESERVED;
840 sysrq->alt = code;
841 sysrq->need_reinject = false;
848 sysrq->shift = KEY_RESERVED;
850 sysrq->shift = code;
854 if (value == 1 && sysrq->alt != KEY_RESERVED) {
855 sysrq->active = true;
856 sysrq->alt_use = sysrq->alt;
858 sysrq->shift_use = sysrq->shift;
863 sysrq->need_reinject = true;
867 * Pretend that sysrq was never pressed at all. This
874 if (sysrq->active)
875 clear_bit(KEY_SYSRQ, sysrq->handle.dev->key);
880 if (sysrq->active && value && value != 2) {
883 sysrq->need_reinject = false;
884 if (sysrq->shift_use != KEY_RESERVED)
891 suppress = sysrq->active;
893 if (!sysrq->active) {
898 if (sysrq->reset_seq_version != sysrq_reset_seq_version)
899 sysrq_parse_reset_sequence(sysrq);
907 set_bit(code, sysrq->key_down);
909 clear_bit(code, sysrq->key_down);
912 schedule_work(&sysrq->reinject_work);
915 sysrq_detect_reset_sequence(sysrq, code, value);
917 } else if (value == 0 && test_and_clear_bit(code, sysrq->key_down)) {
931 struct sysrq_state *sysrq = handle->private;
938 if (sysrq->reinjecting)
948 suppress = sysrq_handle_keypress(sysrq, code, value);
952 suppress = sysrq->active;
963 struct sysrq_state *sysrq;
966 sysrq = kzalloc(sizeof(struct sysrq_state), GFP_KERNEL);
967 if (!sysrq)
970 INIT_WORK(&sysrq->reinject_work, sysrq_reinject_alt_sysrq);
972 sysrq->handle.dev = dev;
973 sysrq->handle.handler = handler;
974 sysrq->handle.name = "sysrq";
975 sysrq->handle.private = sysrq;
976 timer_setup(&sysrq->keyreset_timer, sysrq_do_reset, 0);
978 error = input_register_handle(&sysrq->handle);
980 pr_err("Failed to register input sysrq handler, error %d\n",
985 error = input_open_device(&sysrq->handle);
994 input_unregister_handle(&sysrq->handle);
996 kfree(sysrq);
1002 struct sysrq_state *sysrq = handle->private;
1005 cancel_work_sync(&sysrq->reinject_work);
1006 del_timer_sync(&sysrq->keyreset_timer);
1008 kfree(sysrq);
1030 .name = "sysrq",
1156 * writing 'C' to /proc/sysrq-trigger is like sysrq-C
1182 if (!proc_create("sysrq-trigger", S_IWUSR, NULL,