Patchwork qtest: Handle addresses and values for {in, out}[bwl] as unsigned

login
register
mail settings
Submitter Peter Maydell
Date April 21, 2013, 1:30 p.m.
Message ID <1366551003-16649-1-git-send-email-peter.maydell@linaro.org>
Download mbox | patch
Permalink /patch/238214/
State New
Headers show

Comments

Peter Maydell - April 21, 2013, 1:30 p.m.
Handle the addresses and values for {in,out}[bwl] as unsigned (ie
with strtoul), as per the protocol specification comment. This fixes
a test failure in test_i440fx_defaults on 32-bit hosts where the test
tries to write 0x80000000 and qtest was instead writing 0x7fffffff.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
This fixes the actual parsing error; checking strtol errors is
a separate bug which should be done for the whole file.

 qtest.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
Blue Swirl - April 21, 2013, 3:24 p.m.
On Sun, Apr 21, 2013 at 1:30 PM, Peter Maydell <peter.maydell@linaro.org> wrote:
> Handle the addresses and values for {in,out}[bwl] as unsigned (ie
> with strtoul), as per the protocol specification comment. This fixes
> a test failure in test_i440fx_defaults on 32-bit hosts where the test
> tries to write 0x80000000 and qtest was instead writing 0x7fffffff.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Fixes the problem for me.
Tested-by: Blue Swirl <blauwirbel@gmail.com>

> ---
> This fixes the actual parsing error; checking strtol errors is
> a separate bug which should be done for the whole file.
>
>  qtest.c |    6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/qtest.c b/qtest.c
> index 3bba3e5..07a9612 100644
> --- a/qtest.c
> +++ b/qtest.c
> @@ -271,8 +271,8 @@ static void qtest_process_command(CharDriverState *chr, gchar **words)
>          uint32_t value;
>
>          g_assert(words[1] && words[2]);
> -        addr = strtol(words[1], NULL, 0);
> -        value = strtol(words[2], NULL, 0);
> +        addr = strtoul(words[1], NULL, 0);
> +        value = strtoul(words[2], NULL, 0);
>
>          if (words[0][3] == 'b') {
>              cpu_outb(addr, value);
> @@ -290,7 +290,7 @@ static void qtest_process_command(CharDriverState *chr, gchar **words)
>          uint32_t value = -1U;
>
>          g_assert(words[1]);
> -        addr = strtol(words[1], NULL, 0);
> +        addr = strtoul(words[1], NULL, 0);
>
>          if (words[0][2] == 'b') {
>              value = cpu_inb(addr);
> --
> 1.7.10.4
>
Anthony Liguori - April 22, 2013, 6:34 p.m.
Applied.  Thanks.

Regards,

Anthony Liguori

Patch

diff --git a/qtest.c b/qtest.c
index 3bba3e5..07a9612 100644
--- a/qtest.c
+++ b/qtest.c
@@ -271,8 +271,8 @@  static void qtest_process_command(CharDriverState *chr, gchar **words)
         uint32_t value;
 
         g_assert(words[1] && words[2]);
-        addr = strtol(words[1], NULL, 0);
-        value = strtol(words[2], NULL, 0);
+        addr = strtoul(words[1], NULL, 0);
+        value = strtoul(words[2], NULL, 0);
 
         if (words[0][3] == 'b') {
             cpu_outb(addr, value);
@@ -290,7 +290,7 @@  static void qtest_process_command(CharDriverState *chr, gchar **words)
         uint32_t value = -1U;
 
         g_assert(words[1]);
-        addr = strtol(words[1], NULL, 0);
+        addr = strtoul(words[1], NULL, 0);
 
         if (words[0][2] == 'b') {
             value = cpu_inb(addr);