When a MSI interrupt is bound to a guest using xc_domain_update_msi_irq (XEN_DOMCTL_bind_pt_irq) the interrupt is left masked by default. This causes problems with guests that first configure interrupts and clean the per-entry MSIX table mask bit and afterwards enable MSIX globally. In such scenario the Xen internal msixtbl handlers would not detect the unmasking of MSIX entries because vectors are not yet registered since MSIX is not enabled, and vectors would be left masked. Introduce a new flag in the gflags field to signal Xen whether a MSI interrupt should be unmasked after being bound. This also requires to track the mask register for MSI interrupts, so QEMU can also notify to Xen whether the MSI interrupt should be bound masked or unmasked Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> Reviewed-by: Jan Beulich <jbeulich@suse.com> Reported-by: Andreas Kinzler <hfp@posteo.de> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Signed-off-by: Stefano Stabellini <sstabellini@kernel.org> |
||
---|---|---|
.. | ||
Makefile.objs | ||
trace-events | ||
xen-common.c | ||
xen-host-pci-device.c | ||
xen-host-pci-device.h | ||
xen_backend.c | ||
xen_devconfig.c | ||
xen_pt.c | ||
xen_pt.h | ||
xen_pt_config_init.c | ||
xen_pt_graphics.c | ||
xen_pt_msi.c | ||
xen_pvdev.c |