qemu-e2k/hw/virtio
Greg Kurz 616a655219 virtio: add endian-ambivalent support to VirtIODevice
Some CPU families can dynamically change their endianness. This means we
can have little endian ppc or big endian arm guests for example. This has
an impact on legacy virtio data structures since they are target endian.
We hence introduce a new property to track the endianness of each virtio
device. It is reasonnably assumed that endianness won't change while the
device is in use : we hence capture the device endianness when it gets
reset.

We migrate this property in a subsection, after the device descriptor. This
means the load code must not rely on it until it is restored. As a consequence,
the vring sanity checks had to be moved after the call to vmstate_load_state().
We enforce paranoia by poisoning the property at the begining of virtio_load().

Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2014-06-29 19:39:42 +03:00
..
dataplane dataplane: fix shadowed return value 2014-01-22 13:48:18 +01:00
Makefile.objs Add vhost-user as a vhost backend. 2014-06-19 16:41:56 +03:00
vhost-backend.c Add vhost-user as a vhost backend. 2014-06-19 16:41:56 +03:00
vhost-user.c vhost-user: fix regions provied with VHOST_USER_SET_MEM_TABLE message 2014-06-29 19:39:40 +03:00
vhost.c vhost: fix resource leak in error handling 2014-06-23 17:37:59 +03:00
virtio-balloon.c virtio-balloon: implement per-device migration calls 2014-06-29 19:39:41 +03:00
virtio-bus.c virtio-bus: cleanup plug/unplug interface 2013-12-09 21:46:48 +01:00
virtio-mmio.c virtio-bus: remove vdev field 2013-12-09 21:46:48 +01:00
virtio-pci.c virtio: add endian-ambivalent support to VirtIODevice 2014-06-29 19:39:42 +03:00
virtio-pci.h virtio-pci: remove vdev field 2013-12-09 21:46:48 +01:00
virtio-rng.c virtio-rng: implement per-device migration calls 2014-06-29 19:39:41 +03:00
virtio.c virtio: add endian-ambivalent support to VirtIODevice 2014-06-29 19:39:42 +03:00