qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCHv2 08/11] tests: Clean up IO handling in ide-test


From: Laurent Vivier
Subject: Re: [Qemu-devel] [PATCHv2 08/11] tests: Clean up IO handling in ide-test
Date: Wed, 19 Oct 2016 16:51:41 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0


On 19/10/2016 16:43, Laurent Vivier wrote:
> 
> 
> On 19/10/2016 14:25, David Gibson wrote:
>> ide-test uses many explicit inb() / outb() operations for its IO, which
>> means it's not portable to non-x86 platforms.  This cleans it up to use
>> the libqos PCI accessors instead.
>>
>> Signed-off-by: David Gibson <address@hidden>
>> ---
>>  tests/ide-test.c | 179 
>> ++++++++++++++++++++++++++++++++++++-------------------
>>  1 file changed, 118 insertions(+), 61 deletions(-)
> 
> Could explain why you have swapped the le16_to_cpu() and cpu_to_le16()?
> 
> For me, they were correct.

And I have just finished testing your series on a BE host, and ide-test
is broken:

TEST: tests/ide-test... (pid=12472)
  /i386/ide/identify:                                                  **
ERROR:/home/laurent/Projects/qemu/tests/ide-test.c:518:test_identify:
assertion failed: (ret == 0)
FAIL

You should not add the cpu_to_le16():

     for (i = 0; i < 256; i++) {
-        data = inb(IDE_BASE + reg_status);
+        data = qpci_io_readb(dev, ide_base + reg_status);
         assert_bit_set(data, DRDY | DRQ);
         assert_bit_clear(data, BSY | DF | ERR);

-        ((uint16_t*) buf)[i] = inw(IDE_BASE + reg_data);
+        buf[i] = cpu_to_le16(qpci_io_readw(dev, ide_base + reg_data));
     }

Laurent



reply via email to

[Prev in Thread] Current Thread [Next in Thread]