On 14/10/13 15:56, Paolo Bonzini wrote: > Il 14/10/2013 16:52, Marc Zyngier ha scritto: >>>> Sure. And I imagine this traps back into the kernel to read some >>>> register and find out what the endianness of the accessing CPU is? >>> >>> Not yet. To be exact, it does the below today. But all virtio device >>> emulation is 100% guest endianness unaware. This helper is the only >>> piece of code where it gets any idea what endianness the guest has. So >>> by checking for references to it in the code you know where endianness >>> is an issue. And that's only in the config space. >> >> Only config space? How do you deal with virtio ring descriptors, for >> example? > > They also use guest endianness, but do not use virtio_is_big_endian() > (yet?) so Alex missed them. Yeah, I thought as much. There is a whole bunch of things that need byte swapping, both at the virtio level itself, and at the device level as well. Grep-ing for __u{16,32,64} through include/uapi/linux/virtio* shows the extent of the disaster. M. -- Jazz is not dead. It just smells funny... -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html