On Thu, Jun 12, 2014 at 11:19:47AM +0200, Paolo Bonzini wrote: > Il 12/06/2014 11:06, Greg Kurz ha scritto: > >On Thu, 12 Jun 2014 10:55:42 +0200 > >Paolo Bonzini <pbonz...@redhat.com> wrote: > > > >>Il 12/06/2014 09:43, Greg Kurz ha scritto: > >>>Since we know that 0 < max_nr_ports < 32, is it acceptable to guess > >>>the correct endianness with a heuristic ? > >>> > >>>if (max_nr_ports > tswap32(s->config.max_nr_ports)) { > >>> max_nr_ports = bswap32(max_nr_ports); > >>>} > >>> > >>>if (max_nr_ports > tswap32(s->config.max_nr_ports)) { > >>> return -EINVAL; > >>>} > >> > >>Yes, I guess it is acceptable. So first you should fix the code to > >>always serialize fields as big-endian, and then apply this little hack > >>and virtio_tswap on top of the previous change. > > > >BTW, can someone explain why we stream the device config ? > > For max_nr_ports it is useless indeed. Let's keep storing it for backwards > compatibility, but you can remove its load. > > The cols and rows values should be defined by the host and thus could even > change on migration, there is no need to store them. As of now, however, > they are unused in QEMU and should always be zero, because > VIRTIO_CONSOLE_F_SIZE is not supported. > > Paolo
Maybe just drop unnecessary stuff for new machine types? Then we won't need hacks to migrate it. -- MST