2013-03-07 09:00:32

by zhangwei(Jovi)

[permalink] [raw]
Subject: [PATCH 4/8] ARM/etm/sysrq: fix inconstistent help message of sysrq key

Currently help message of /proc/sysrq-trigger highlight its
upper-case characters, like below:

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

this would confuse user trigger sysrq by upper-case character, which is
inconsistent with the real lower-case character registed key.

This inconsistent help message will also lead more confused when
26 upper-case letters put into use in future.

This patch fix arm etm sysrq key: "etm buffer dump(v)"

Signed-off-by: zhangwei(Jovi) <[email protected]>
Cc: Russell King <[email protected]>
---
arch/arm/kernel/etm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/kernel/etm.c b/arch/arm/kernel/etm.c
index 9b6de8c..e2dad6f 100644
--- a/arch/arm/kernel/etm.c
+++ b/arch/arm/kernel/etm.c
@@ -254,7 +254,7 @@ static void sysrq_etm_dump(int key)

static struct sysrq_key_op sysrq_etm_op = {
.handler = sysrq_etm_dump,
- .help_msg = "ETM buffer dump",
+ .help_msg = "etm buffer dump(v)",
.action_msg = "etm",
};

--
1.7.9.7


2013-03-07 11:37:01

by Russell King - ARM Linux

[permalink] [raw]
Subject: Re: [PATCH 4/8] ARM/etm/sysrq: fix inconstistent help message of sysrq key

On Thu, Mar 07, 2013 at 05:00:23PM +0800, zhangwei(Jovi) wrote:
> Currently help message of /proc/sysrq-trigger highlight its
> upper-case characters, like below:
>
> SysRq : HELP : loglevel(0-9) reBoot Crash terminate-all-tasks(E)
> memory-full-oom-kill(F) kill-all-tasks(I) ...
>
> this would confuse user trigger sysrq by upper-case character, which is
> inconsistent with the real lower-case character registed key.
>
> This inconsistent help message will also lead more confused when
> 26 upper-case letters put into use in future.
>
> This patch fix arm etm sysrq key: "etm buffer dump(v)"

Umm, actually this is wrong. sysrq doesn't deal with case.

static int sysrq_key_table_key2index(int key)
{
int retval;

if ((key >= '0') && (key <= '9'))
retval = key - '0';
else if ((key >= 'a') && (key <= 'z'))
retval = key + 10 - 'a';
else
retval = -1;
return retval;
}

It actually accepts no upper case characters (because they can't be
typed on a PC keyboard with the simple code that is sysrq.) The sysrq
key combinations there are Alt+Sysrq+key.

All sysrq help messages give the key in parens with a capital letter.
However, there's one change you should make to this anyway - there
should be no spaces in the help message - instead, the spaces should
be the "-" character. Space is used to separate each sysrq key help
message.

Thanks.

2013-03-08 03:32:41

by zhangwei(Jovi)

[permalink] [raw]
Subject: Re: [PATCH 4/8] ARM/etm/sysrq: fix inconstistent help message of sysrq key

On 2013/3/7 19:36, Russell King - ARM Linux wrote:
> On Thu, Mar 07, 2013 at 05:00:23PM +0800, zhangwei(Jovi) wrote:
>> Currently help message of /proc/sysrq-trigger highlight its
>> upper-case characters, like below:
>>
>> SysRq : HELP : loglevel(0-9) reBoot Crash terminate-all-tasks(E)
>> memory-full-oom-kill(F) kill-all-tasks(I) ...
>>
>> this would confuse user trigger sysrq by upper-case character, which is
>> inconsistent with the real lower-case character registed key.
>>
>> This inconsistent help message will also lead more confused when
>> 26 upper-case letters put into use in future.
>>
>> This patch fix arm etm sysrq key: "etm buffer dump(v)"
>
> Umm, actually this is wrong. sysrq doesn't deal with case.
>
> static int sysrq_key_table_key2index(int key)
> {
> int retval;
>
> if ((key >= '0') && (key <= '9'))
> retval = key - '0';
> else if ((key >= 'a') && (key <= 'z'))
> retval = key + 10 - 'a';
> else
> retval = -1;
> return retval;
> }
>
> It actually accepts no upper case characters (because they can't be
> typed on a PC keyboard with the simple code that is sysrq.) The sysrq
> key combinations there are Alt+Sysrq+key.
>
No, sysrq doesn't accept upper-case characters just now,
function sysrq_key_table_key2index will be change if lower-case character is full for sysrq key use.

upper-case can be use for sysrq, whatever user trigger it by Sysrq key in PC keyboard, or echo "letter" into /proc/sysrq-trigger.
When trigger upper-case sysrq key by PC keyboard, you need open Caps-Lock firstly.
(Tested in my PC box)

> All sysrq help messages give the key in parens with a capital letter.
> However, there's one change you should make to this anyway - there
> should be no spaces in the help message - instead, the spaces should
> be the "-" character. Space is used to separate each sysrq key help
> message.
You are right, I fix it by below patch. Thanks.

---------------------

>From 93a03255cc570ac0e7f306b0bbd815195944813e Mon Sep 17 00:00:00 2001
From: "zhangwei(Jovi)" <[email protected]>
Date: Fri, 8 Mar 2013 11:04:16 +0800
Subject: [PATCH 4/8] ARM/etm/sysrq: fix inconstistent help message of sysrq
key

Currently help message of /proc/sysrq-trigger highlights its
upper-case characters, like below:

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

this would confuse user trigger sysrq by upper-case character, which is
inconsistent with the real lower-case character registed key.

This inconsistent help message will also lead more confused when
26 upper-case letters put into use in future.

This patch fix arm etm sysrq key: "etm-buffer-dump(v)"
(This patch also add "-" to separate each sysrq key help word,
instead of spaces)

Signed-off-by: zhangwei(Jovi) <[email protected]>
Acked-by: Randy Dunlap <[email protected]>
Cc: Russell King <[email protected]>
---
arch/arm/kernel/etm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/kernel/etm.c b/arch/arm/kernel/etm.c
index 9b6de8c..8ff0ecd 100644
--- a/arch/arm/kernel/etm.c
+++ b/arch/arm/kernel/etm.c
@@ -254,7 +254,7 @@ static void sysrq_etm_dump(int key)

static struct sysrq_key_op sysrq_etm_op = {
.handler = sysrq_etm_dump,
- .help_msg = "ETM buffer dump",
+ .help_msg = "etm-buffer-dump(v)",
.action_msg = "etm",
};

--
1.7.9.7