On 23/02/2017 17:08, Peter Maydell wrote: > On 23 February 2017 at 15:58, Paolo Bonzini <pbonz...@redhat.com> wrote: >> However, DEVICE_NATIVE_ENDIAN would have to be paired with tswap, which >> the current code does not do, hence the bug. To have no swap at all, >> you'd need DEVICE_HOST_ENDIAN. > > Yes, I agree that the current ramdevice code has this bug (and > that we can fix it by any of the various options).
Good. :) >>> AIUI what we want for this VFIO case is "when the guest does >>> a 32-bit write of 0x12345678 then the bytes are 0x12 0x34 0x56 0x78 >>> regardless of whether TARGET_BIG_ENDIAN or not". >> >> No, I don't think so. This is not specific to VFIO. You can do it with >> any device, albeit VFIO is currently the only one using ramd regions. > > The commit message in the patch that started this thread off > says specifically that "VFIO PCI device is little endian". > Is that wrong? Yes, I think it's a red herring. Hence my initial confusion, when I asked "would Yongji's patch just work if it used DEVICE_BIG_ENDIAN and beNN_to_cpu/cpu_to_beNN". Paolo