[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] [Qemu-devel] [PATCH v6 20/26] memory: Access MemoryRegion with endianness
- To: Richard Henderson <richard.henderson@xxxxxxxxxx>, tony.nguyen@xxxxxx, qemu-devel@xxxxxxxxxx
- From: Paolo Bonzini <pbonzini@xxxxxxxxxx>
- Date: Wed, 7 Aug 2019 20:00:34 +0200
- Cc: fam@xxxxxxxxxx, peter.maydell@xxxxxxxxxx, walling@xxxxxxxxxxxxx, dmitry.fleytman@xxxxxxxxx, imammedo@xxxxxxxxxx, sagark@xxxxxxxxxxxxxxxxx, david@xxxxxxxxxx, jasowang@xxxxxxxxxx, palmer@xxxxxxxxxx, mark.cave-ayland@xxxxxxxxxxxx, laurent@xxxxxxxxx, keith.busch@xxxxxxxxx, jcmvbkbc@xxxxxxxxx, frederic.konrad@xxxxxxxxxxx, kraxel@xxxxxxxxxx, edgar.iglesias@xxxxxxxxx, gxt@xxxxxxxxxxxxxxx, pburton@xxxxxxxxxxxx, marex@xxxxxxx, robh@xxxxxxxxxx, hare@xxxxxxxx, sstabellini@xxxxxxxxxx, berto@xxxxxxxxxx, proljc@xxxxxxxxx, qemu-block@xxxxxxxxxx, arikalo@xxxxxxxxxxxx, jslaby@xxxxxxx, deller@xxxxxx, mst@xxxxxxxxxx, magnus.damm@xxxxxxxxx, pasic@xxxxxxxxxxxxx, borntraeger@xxxxxxxxxx, mreitz@xxxxxxxxxx, hpoussin@xxxxxxxxxxx, joel@xxxxxxxxx, anthony.perard@xxxxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxxx, rth@xxxxxxxxxxx, philmd@xxxxxxxxxx, green@xxxxxxxxxxxxxx, atar4qemu@xxxxxxxxx, antonynpavlov@xxxxxxxxx, jiri@xxxxxxxxxxx, ehabkost@xxxxxxxxxx, minyard@xxxxxxx, sw@xxxxxxxxxxx, alistair@xxxxxxxxxxxxx, chouteau@xxxxxxxxxxx, b.galvani@xxxxxxxxx, eric.auger@xxxxxxxxxx, qemu-s390x@xxxxxxxxxx, qemu-arm@xxxxxxxxxx, peter.chubb@xxxxxxxxxxxx, yuval.shaia@xxxxxxxxxx, stefanha@xxxxxxxxxx, marcandre.lureau@xxxxxxxxxx, shorne@xxxxxxxxx, sundeep.lkml@xxxxxxxxx, jsnow@xxxxxxxxxx, david@xxxxxxxxxxxxxxxxxxxxx, kwolf@xxxxxxxxxx, crwulff@xxxxxxxxx, qemu-riscv@xxxxxxxxxx, xiaoguangrong.eric@xxxxxxxxx, i.mitsyanko@xxxxxxxxx, lersek@xxxxxxxxxx, cohuck@xxxxxxxxxx, alex.williamson@xxxxxxxxxx, Andrew.Baumann@xxxxxxxxxxxxx, jcd@xxxxxxxxxxxxxxx, andrew@xxxxxxxx, michael@xxxxxxxx, paul.durrant@xxxxxxxxxx, qemu-ppc@xxxxxxxxxx, huth@xxxxxxxxxxxxx, amarkovic@xxxxxxxxxxxx, kbastian@xxxxxxxxxxxxxxxxxxxxx, jan.kiszka@xxxxxx, stefanb@xxxxxxxxxxxxx, andrew.smirnov@xxxxxxxxx, aurelien@xxxxxxxxxxx, clg@xxxxxxxx
- Delivery-date: Wed, 07 Aug 2019 18:00:57 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
- Openpgp: preference=signencrypt
On 07/08/19 19:49, Richard Henderson wrote:
> On 8/7/19 1:33 AM, tony.nguyen@xxxxxx wrote:
>> @@ -551,6 +551,7 @@ void virtio_address_space_write(VirtIOPCIProxy *proxy,
>> hwaddr addr,
>> /* As length is under guest control, handle illegal values. */
>> return;
>> }
>> + /* FIXME: memory_region_dispatch_write ignores MO_BSWAP. */
>> memory_region_dispatch_write(mr, addr, val, size_memop(len),
>> MEMTXATTRS_UNSPECIFIED);
>> }
>
> Here is an example of where Paolo is quite right -- you cannot simply add
> MO_TE
> via size_memop(). In patch 22 we see
>
>> @@ -542,16 +542,15 @@ void virtio_address_space_write(VirtIOPCIProxy *proxy,
>> hwaddr addr,
>> val = pci_get_byte(buf);
>> break;
>> case 2:
>> - val = cpu_to_le16(pci_get_word(buf));
>> + val = pci_get_word(buf);
>> break;
>> case 4:
>> - val = cpu_to_le32(pci_get_long(buf));
>> + val = pci_get_long(buf);
>> break;
>> default:
>> /* As length is under guest control, handle illegal values. */
>> return;
>> }
>> - /* FIXME: memory_region_dispatch_write ignores MO_BSWAP. */
>> memory_region_dispatch_write(mr, addr, val, size_memop(len),
>> MEMTXATTRS_UNSPECIFIED);
>
> This is a little-endian store -- MO_LE not MO_TE.
Or leave the switch statement aside and request host endianness. Either
is fine.
Paolo
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|