Message ID | 1366551003-16649-1-git-send-email-peter.maydell@linaro.org |
---|---|
State | Accepted |
Commit | 56863d4f19c854acc5ebf5f5c1b590eb8164851a |
Headers | show |
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 >
Applied. Thanks. Regards, Anthony Liguori
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);
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(-)