|
From: | Paolo Bonzini |
Subject: | Re: [Qemu-devel] [PATCH RFC 8/8] virtio: add endian-ambivalent support to VirtIODevice |
Date: | Thu, 12 Jun 2014 11:19:47 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 |
Il 12/06/2014 11:06, Greg Kurz ha scritto:
On Thu, 12 Jun 2014 10:55:42 +0200 Paolo Bonzini <address@hidden> 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
[Prev in Thread] | Current Thread | [Next in Thread] |