On 23 February 2017 at 08:35, Paolo Bonzini <pbonz...@redhat.com> wrote: > > > On 23/02/2017 05:20, Alexey Kardashevskiy wrote: >> First, Paolo is right and ram_device_mem_ops::endianness should be >> host-endian which happens to be little in our test case (ppc64le) > > So you tested a ppc64 BE guest and it works? > >> Keep things where they are in the VFIO department and just fix >> ram_device_mem_ops::endianness? > > I would fix the ram_device_mem_ops. Either by introducing > DEVICE_HOST_ENDIAN(*) or with Yongji's patch. > > (*) DEVICE_NATIVE_ENDIAN is special cased all over the place > because the same device (in a file that's compiled just once) > can be either little- or big-endian. DEVICE_HOST_ENDIAN can > be a simple #define to either DEVICE_LITTLE_ENDIAN or > DEVICE_BIG_ENDIAN, because host endianness is the same for > all QEMU binaries. It's literally half a dozen lines of code.
I'm really not convinced we need DEVICE_HOST_ENDIAN. RAM areas should be target-endian (you can probably define "target endianness" as "the endianness that RAM areas have".) -- PMM