2010-06-17 09:33:54

by Andy Shevchenko

[permalink] [raw]
Subject: [PATCH] kgdb: remove custom hex_to_bin() implementation

From: Andy Shevchenko <[email protected]>

Signed-off-by: Andy Shevchenko <[email protected]>
Cc: Jason Wessel <[email protected]>
Cc: Martin Hicks <[email protected]>
Cc: [email protected]
---
kernel/debug/gdbstub.c | 21 +++++----------------
1 files changed, 5 insertions(+), 16 deletions(-)

diff --git a/kernel/debug/gdbstub.c b/kernel/debug/gdbstub.c
index 4b17b32..d721b1b 100644
--- a/kernel/debug/gdbstub.c
+++ b/kernel/debug/gdbstub.c
@@ -52,17 +52,6 @@ static unsigned long gdb_regs[(NUMREGBYTES +
* GDB remote protocol parser:
*/

-static int hex(char ch)
-{
- if ((ch >= 'a') && (ch <= 'f'))
- return ch - 'a' + 10;
- if ((ch >= '0') && (ch <= '9'))
- return ch - '0';
- if ((ch >= 'A') && (ch <= 'F'))
- return ch - 'A' + 10;
- return -1;
-}
-
#ifdef CONFIG_KGDB_KDB
static int gdbstub_read_wait(void)
{
@@ -123,8 +112,8 @@ static void get_packet(char *buffer)
buffer[count] = 0;

if (ch == '#') {
- xmitcsum = hex(gdbstub_read_wait()) << 4;
- xmitcsum += hex(gdbstub_read_wait());
+ xmitcsum = hex_to_bin(gdbstub_read_wait()) << 4;
+ xmitcsum += hex_to_bin(gdbstub_read_wait());

if (checksum != xmitcsum)
/* failed checksum */
@@ -280,8 +269,8 @@ int kgdb_hex2mem(char *buf, char *mem, int count)
tmp_hex = tmp_raw - 1;
while (tmp_hex >= buf) {
tmp_raw--;
- *tmp_raw = hex(*tmp_hex--);
- *tmp_raw |= hex(*tmp_hex--) << 4;
+ *tmp_raw = hex_to_bin(*tmp_hex--);
+ *tmp_raw |= hex_to_bin(*tmp_hex--) << 4;
}

return probe_kernel_write(mem, tmp_raw, count);
@@ -304,7 +293,7 @@ int kgdb_hex2long(char **ptr, unsigned long *long_val)
(*ptr)++;
}
while (**ptr) {
- hex_val = hex(**ptr);
+ hex_val = hex_to_bin(**ptr);
if (hex_val < 0)
break;

--
1.6.3.3


2010-06-28 02:22:46

by Dongdong Deng

[permalink] [raw]
Subject: Re: [PATCH] kgdb: remove custom hex_to_bin() implementation

It is ok to me. :-)

Best Regards,
Dongdong

On Thu, Jun 17, 2010 at 5:33 PM, Andy Shevchenko
<[email protected]> wrote:
> From: Andy Shevchenko <[email protected]>
>
> Signed-off-by: Andy Shevchenko <[email protected]>
> Cc: Jason Wessel <[email protected]>
> Cc: Martin Hicks <[email protected]>
> Cc: [email protected]
> ---
>  kernel/debug/gdbstub.c |   21 +++++----------------
>  1 files changed, 5 insertions(+), 16 deletions(-)
>
> diff --git a/kernel/debug/gdbstub.c b/kernel/debug/gdbstub.c
> index 4b17b32..d721b1b 100644
> --- a/kernel/debug/gdbstub.c
> +++ b/kernel/debug/gdbstub.c
> @@ -52,17 +52,6 @@ static unsigned long         gdb_regs[(NUMREGBYTES +
>  * GDB remote protocol parser:
>  */
>
> -static int hex(char ch)
> -{
> -       if ((ch >= 'a') && (ch <= 'f'))
> -               return ch - 'a' + 10;
> -       if ((ch >= '0') && (ch <= '9'))
> -               return ch - '0';
> -       if ((ch >= 'A') && (ch <= 'F'))
> -               return ch - 'A' + 10;
> -       return -1;
> -}
> -
>  #ifdef CONFIG_KGDB_KDB
>  static int gdbstub_read_wait(void)
>  {
> @@ -123,8 +112,8 @@ static void get_packet(char *buffer)
>                buffer[count] = 0;
>
>                if (ch == '#') {
> -                       xmitcsum = hex(gdbstub_read_wait()) << 4;
> -                       xmitcsum += hex(gdbstub_read_wait());
> +                       xmitcsum = hex_to_bin(gdbstub_read_wait()) << 4;
> +                       xmitcsum += hex_to_bin(gdbstub_read_wait());
>
>                        if (checksum != xmitcsum)
>                                /* failed checksum */
> @@ -280,8 +269,8 @@ int kgdb_hex2mem(char *buf, char *mem, int count)
>        tmp_hex = tmp_raw - 1;
>        while (tmp_hex >= buf) {
>                tmp_raw--;
> -               *tmp_raw = hex(*tmp_hex--);
> -               *tmp_raw |= hex(*tmp_hex--) << 4;
> +               *tmp_raw = hex_to_bin(*tmp_hex--);
> +               *tmp_raw |= hex_to_bin(*tmp_hex--) << 4;
>        }
>
>        return probe_kernel_write(mem, tmp_raw, count);
> @@ -304,7 +293,7 @@ int kgdb_hex2long(char **ptr, unsigned long *long_val)
>                (*ptr)++;
>        }
>        while (**ptr) {
> -               hex_val = hex(**ptr);
> +               hex_val = hex_to_bin(**ptr);
>                if (hex_val < 0)
>                        break;
>
> --
> 1.6.3.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>

2010-07-27 14:17:04

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH] kgdb: remove custom hex_to_bin() implementation

On Thu, Jun 17, 2010 at 12:33 PM, Andy Shevchenko
<[email protected]> wrote:
> Cc: Jason Wessel <[email protected]>
> Cc: Martin Hicks <[email protected]>
> Cc: [email protected]

Any comments?
The patch still valid for linux-next tree (I did cherry-pick today).

--
With Best Regards,
Andy Shevchenko

2010-07-28 20:47:14

by Jason Wessel

[permalink] [raw]
Subject: Re: [Kgdb-bugreport] [PATCH] kgdb: remove custom hex_to_bin()implementation

On 06/17/2010 04:33 AM, Andy Shevchenko wrote:
> From: Andy Shevchenko <[email protected]>
>
> Signed-off-by: Andy Shevchenko <[email protected]>
> Cc: Jason Wessel <[email protected]>
> Cc: Martin Hicks <[email protected]>
> Cc: [email protected]
>
Looks fine to me as the hex_to_bin is a drop in replacement.

I'll queue this to merge in 2.6.36. It will appear in linux-next in
the day.

Thanks,
Jason.