Re: [PATCH v3] sysrq: supplementing reset sequence with timeout functionality

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

 



On 13-03-31 01:36 AM, Dmitry Torokhov wrote:
> @@ -748,10 +758,13 @@ static bool sysrq_handle_keypress(struct sysrq_state *sysrq,
>  		if (was_active)
>  			schedule_work(&sysrq->reinject_work);
>  
> -		if (sysrq_detect_reset_sequence(sysrq, code, value)) {
> -			/* Force emergency reboot */
> -			__handle_sysrq(sysrq_xlate[KEY_B], false);
> -		}
> +		if (!sysrq_detect_reset_sequence(sysrq, code, value))
> +			del_timer(&sysrq->keyreset_timer);

I tested this code and it doesn't work.  When all the keys in a reset
combo are asserted and held down the code and value of the last key
keeps on being generated.  Since the only time
'sysrq_detect_reset_sequence' returns true is when

'++state->reset_seq_cnt == state->reset_seq_len &&
                                                !state->reset_canceled'

the very next input event to come in (after a key combo has been
discovered) cancel the timer.

I will send a 'v4' version of my initial patch that will:
- cancel the timer when more keys are pressed
- trigger a reset right away when no timeout value has been specified.
- deal with the miscellaneous name changes.

> +		else if (sysrq_reset_downtime_ms)
> +			mod_timer(&sysrq->keyreset_timer,
> +				jiffies + msecs_to_jiffies(sysrq_reset_downtime_ms));
> +		else
> +			sysrq_do_reset(0);

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux