mirror_qemu/hw/virtio
Michael S. Tsirkin 62cee1a28a virtio: set low features early on load
virtio migrates the low 32 feature bits twice, the first copy is there
for compatibility but ever since
019a3edbb25f1571e876f8af1ce4c55412939e5d: ("virtio: make features 64bit
wide") it's ignored on load. This is wrong since virtio_net_load tests
self announcement and guest offloads before the second copy including
high feature bits is loaded.  This means that self announcement, control
vq and guest offloads are all broken after migration.

Fix it up by loading low feature bits: somewhat ugly since high and low
bits become out of sync temporarily, but seems unavoidable for
compatibility.  The right thing to do for new features is probably to
test the host features, anyway.

Fixes: 019a3edbb2
    ("virtio: make features 64bit wide")
Cc: qemu-stable@nongnu.org
Reported-by: Robin Geuze <robing@transip.nl>
Tested-by: Robin Geuze <robing@transip.nl>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2016-07-04 14:52:10 +03:00
..
Makefile.objs vring: remove 2016-02-25 13:14:19 +02:00
trace-events trace: split out trace events for hw/virtio/ directory 2016-06-20 17:22:15 +01:00
vhost-backend.c virtio: Clean up includes 2016-01-29 15:07:23 +00:00
vhost-user.c memory: split memory_region_from_host from qemu_ram_addr_from_host 2016-05-29 09:11:12 +02:00
vhost.c virtio-bus: remove old set_host_notifier callback 2016-06-24 08:47:35 +03:00
virtio-balloon.c os-posix: include sys/mman.h 2016-06-16 18:39:03 +02:00
virtio-bus.c virtio: revert host notifiers to old semantics 2016-07-04 14:52:10 +03:00
virtio-mmio.c virtio-mmio: convert to ioeventfd callbacks 2016-06-24 08:47:35 +03:00
virtio-pci.c virtio-pci: convert to ioeventfd callbacks 2016-06-24 08:47:35 +03:00
virtio-pci.h hw/virtio: group virtio flags into an enum 2016-03-11 14:54:28 +02:00
virtio-rng.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
virtio.c virtio: set low features early on load 2016-07-04 14:52:10 +03:00