mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 16:53:55 -06:00
![]() Currently, devices are plugged before features are negotiated. If the backend doesn't support VIRTIO_F_VERSION_1, the transport needs to rewind some settings. This is the case for CCW, for which a post_plugged callback had been introduced, where max_rev field is just updated if VIRTIO_F_VERSION_1 is not supported by the backend. For PCI, implementing post_plugged would be much more complicated, so it needs to know whether the backend supports VIRTIO_F_VERSION_1 at plug time. Currently, nothing is done for PCI. Modern capabilities get exposed to the guest even if VIRTIO_F_VERSION_1 is not supported by the backend, which confuses the guest. This patch replaces existing post_plugged solution with an approach that fits with both transports. Features negotiation is performed before ->device_plugged() call. A pre_plugged callback is introduced so that the transports can set their supported features. Cc: Michael S. Tsirkin <mst@redhat.com> Cc: qemu-stable@nongnu.org Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com> [ccw] Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Reviewed-by: Marcel Apfelbaum <marcel@redhat.com> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> |
||
---|---|---|
.. | ||
ccw-device.c | ||
ccw-device.h | ||
css-bridge.c | ||
css.c | ||
event-facility.c | ||
ipl.c | ||
ipl.h | ||
Makefile.objs | ||
s390-pci-bus.c | ||
s390-pci-bus.h | ||
s390-pci-inst.c | ||
s390-pci-inst.h | ||
s390-skeys-kvm.c | ||
s390-skeys.c | ||
s390-virtio-ccw.c | ||
s390-virtio-hcall.c | ||
s390-virtio.c | ||
s390-virtio.h | ||
sclp.c | ||
sclpcpu.c | ||
sclpquiesce.c | ||
trace-events | ||
virtio-ccw.c | ||
virtio-ccw.h |