• G
    virtio: add endian-ambivalent support to VirtIODevice · 616a6552
    Greg Kurz 提交于
    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: NGreg Kurz <gkurz@linux.vnet.ibm.com>
    Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
    Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
    616a6552
virtio.h 10.0 KB