qemu/hw/i386/kvm
David Woodhouse 4a5780f520 hw/xen: fix XenStore watch delivery to guest
When fire_watch_cb() found the response buffer empty, it would call
deliver_watch() to generate the XS_WATCH_EVENT message in the response
buffer and send an event channel notification to the guest… without
actually *copying* the response buffer into the ring. So there was
nothing for the guest to see. The pending response didn't actually get
processed into the ring until the guest next triggered some activity
from its side.

Add the missing call to put_rsp().

It might have been slightly nicer to call xen_xenstore_event() here,
which would *almost* have worked. Except for the fact that it calls
xen_be_evtchn_pending() to check that it really does have an event
pending (and clear the eventfd for next time). And under Xen it's
defined that setting that fd to O_NONBLOCK isn't guaranteed to work,
so the emu implementation follows suit.

This fixes Xen device hot-unplug.

Cc: qemu-stable@nongnu.org
Fixes: 0254c4d19d ("hw/xen: Add xenstore wire implementation and implementation stubs")
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Paul Durrant <paul@xen.org>
2023-11-06 10:03:45 +00:00
..
apic.c i386/kvm: The value passed to strerror should be positive 2021-06-05 21:01:17 +02:00
clock.c kvm: i386: require KVM_CAP_ADJUST_CLOCK 2023-10-25 19:53:38 +02:00
clock.h hw/i386: Rename 'hw/kvm/clock.h' -> 'hw/i386/kvm/clock.h' 2023-08-31 19:47:43 +02:00
i8254.c kvm: i8254: require KVM_CAP_PIT2 and KVM_CAP_PIT_STATE2 2023-10-25 19:53:38 +02:00
i8259.c hw/intc: Extract the IRQ counting functions into a separate file 2023-01-13 16:22:57 +01:00
ioapic.c sysemu/kvm: Restrict kvm_pc_setup_irq_routing() to x86 targets 2023-09-07 13:32:37 +02:00
meson.build meson: Replace CONFIG_SOFTMMU -> CONFIG_SYSTEM_ONLY 2023-06-20 10:01:30 +02:00
trace-events hw/xen: Add xenstore wire implementation and implementation stubs 2023-03-07 17:04:30 +00:00
trace.h hw/xen: Implement emulated PIRQ hypercall support 2023-03-01 09:09:01 +00:00
xen_evtchn.c hw/xen: select kernel mode for per-vCPU event channel upcall vector 2023-11-06 10:03:45 +00:00
xen_evtchn.h hw/xen: Simplify emulated Xen platform init 2023-06-07 15:07:10 +01:00
xen_gnttab.c hw/xen: don't clear map_track[] in xen_gnttab_reset() 2023-11-06 10:03:45 +00:00
xen_gnttab.h hw/xen: Implement soft reset for emulated gnttab 2023-03-07 17:04:30 +00:00
xen_overlay.c hw/xen: Support mapping grant frames 2023-03-01 09:07:52 +00:00
xen_overlay.h hw/xen: Support mapping grant frames 2023-03-01 09:07:52 +00:00
xen_xenstore.c hw/xen: fix XenStore watch delivery to guest 2023-11-06 10:03:45 +00:00
xen_xenstore.h hw/xen: Add xen_xenstore device for xenstore emulation 2023-03-01 09:08:26 +00:00
xen-stubs.c hw/xen: Support MSI mapping to PIRQ 2023-03-01 09:09:22 +00:00
xenstore_impl.c i386: spelling fixes 2023-09-20 07:54:34 +03:00
xenstore_impl.h hw/xen: Add xenstore operations to allow redirection to internal emulation 2023-03-07 17:04:30 +00:00