2013-03-06 04:09:55

by zhangwei(Jovi)

[permalink] [raw]
Subject: [PATCH] sysrq: allow user trigger sysrq by upper-case character key

See the help text output of /proc/sysrq-trigger:

SysRq : HELP : loglevel(0-9) reBoot Crash terminate-all-tasks(E)
memory-full-oom-kill(F) kill-all-tasks(I) ...

Most command is referenced by responding upper-case character,
this would hint user can trigger sysrq by upper-case character key,
but that's wrong, sysrq only accept lower-case character currently.

It's reasonable to let user trigger sysrq by upper-case character key.

Signed-off-by: zhnagwei(Jovi) <[email protected]>
---
drivers/tty/sysrq.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
index 3687f0c..a88908e 100644
--- a/drivers/tty/sysrq.c
+++ b/drivers/tty/sysrq.c
@@ -471,6 +471,8 @@ static int sysrq_key_table_key2index(int key)
retval = key - '0';
else if ((key >= 'a') && (key <= 'z'))
retval = key + 10 - 'a';
+ else if ((key >= 'A') && (key <= 'Z'))
+ retval = key + 10 - 'A';
else
retval = -1;
return retval;
--
1.7.9.7


2013-03-06 19:30:51

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH] sysrq: allow user trigger sysrq by upper-case character key

On 03/05/13 20:07, zhangwei(Jovi) wrote:
> See the help text output of /proc/sysrq-trigger:
>
> SysRq : HELP : loglevel(0-9) reBoot Crash terminate-all-tasks(E)
> memory-full-oom-kill(F) kill-all-tasks(I) ...
>
> Most command is referenced by responding upper-case character,
> this would hint user can trigger sysrq by upper-case character key,
> but that's wrong, sysrq only accept lower-case character currently.
>
> It's reasonable to let user trigger sysrq by upper-case character key.
>

Since the sysrq_key_table[] is basically full and we don't have a path (plan)
for how to expand it, would it be reasonable to map upper case characters
to different functions from their corresponding lower case characters,
or is that just too confusing?

The help text can be fixed:

SysRq: HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e)
memory-full-oom-kill(f) kill-all-tasks(i) ...


> Signed-off-by: zhnagwei(Jovi) <[email protected]>
> ---
> drivers/tty/sysrq.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
> index 3687f0c..a88908e 100644
> --- a/drivers/tty/sysrq.c
> +++ b/drivers/tty/sysrq.c
> @@ -471,6 +471,8 @@ static int sysrq_key_table_key2index(int key)
> retval = key - '0';
> else if ((key >= 'a') && (key <= 'z'))
> retval = key + 10 - 'a';
> + else if ((key >= 'A') && (key <= 'Z'))
> + retval = key + 10 - 'A';
> else
> retval = -1;
> return retval;
>


--
~Randy

2013-03-06 21:39:23

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] sysrq: allow user trigger sysrq by upper-case character key

On Wed, 6 Mar 2013 12:07:34 +0800 "zhangwei(Jovi)" <[email protected]> wrote:

> See the help text output of /proc/sysrq-trigger:
>
> SysRq : HELP : loglevel(0-9) reBoot Crash terminate-all-tasks(E)
> memory-full-oom-kill(F) kill-all-tasks(I) ...
>
> Most command is referenced by responding upper-case character,
> this would hint user can trigger sysrq by upper-case character key,
> but that's wrong, sysrq only accept lower-case character currently.
>
> It's reasonable to let user trigger sysrq by upper-case character key.
>
> Signed-off-by: zhnagwei(Jovi) <[email protected]>
> ---
> drivers/tty/sysrq.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
> index 3687f0c..a88908e 100644
> --- a/drivers/tty/sysrq.c
> +++ b/drivers/tty/sysrq.c
> @@ -471,6 +471,8 @@ static int sysrq_key_table_key2index(int key)
> retval = key - '0';
> else if ((key >= 'a') && (key <= 'z'))
> retval = key + 10 - 'a';
> + else if ((key >= 'A') && (key <= 'Z'))
> + retval = key + 10 - 'A';
> else
> retval = -1;
> return retval;

Then fix the help message ;)

We're already using 19 of the 26 letters and this change would rule out
future use of the 26 upper-case letters.

I doubt if anyone is hurting from the inconsistent help message, really.

2013-03-07 08:41:11

by zhangwei(Jovi)

[permalink] [raw]
Subject: Re: [PATCH] sysrq: allow user trigger sysrq by upper-case character key

On 2013/3/7 5:39, Andrew Morton wrote:
> On Wed, 6 Mar 2013 12:07:34 +0800 "zhangwei(Jovi)" <[email protected]> wrote:
>
>> See the help text output of /proc/sysrq-trigger:
>>
>> SysRq : HELP : loglevel(0-9) reBoot Crash terminate-all-tasks(E)
>> memory-full-oom-kill(F) kill-all-tasks(I) ...
>>
>> Most command is referenced by responding upper-case character,
>> this would hint user can trigger sysrq by upper-case character key,
>> but that's wrong, sysrq only accept lower-case character currently.
>>
>> It's reasonable to let user trigger sysrq by upper-case character key.
>>
>> Signed-off-by: zhnagwei(Jovi) <[email protected]>
>> ---
>> drivers/tty/sysrq.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
>> index 3687f0c..a88908e 100644
>> --- a/drivers/tty/sysrq.c
>> +++ b/drivers/tty/sysrq.c
>> @@ -471,6 +471,8 @@ static int sysrq_key_table_key2index(int key)
>> retval = key - '0';
>> else if ((key >= 'a') && (key <= 'z'))
>> retval = key + 10 - 'a';
>> + else if ((key >= 'A') && (key <= 'Z'))
>> + retval = key + 10 - 'A';
>> else
>> retval = -1;
>> return retval;
>
> Then fix the help message ;)
>
> We're already using 19 of the 26 letters and this change would rule out
> future use of the 26 upper-case letters.
>
> I doubt if anyone is hurting from the inconsistent help message, really.
It's confusing, I always try to trigger sysrq by upper-case character after read help message.

I will resend patch to change the help message instead.

Thanks.

>