97a0425e04
xen-4.5.1-testing-src.tar.bz2 - Dropped patches now contained in tarball 556c2cf2-x86-don-t-crash-mapping-a-page-using-EFI-rt-page-tables.patch 556d9718-efi-fix-allocation-problems-if-ExitBootServices-fails.patch 556eabf7-x86-apic-Disable-the-LAPIC-later-in-smp_send_stop.patch 556eac15-x86-crash-don-t-use-set_fixmap-in-the-crash-path.patch 55780aaa-efi-avoid-calling-boot-services-after-ExitBootServices.patch 55780aff-x86-EFI-fix-EFI_MEMORY_WP-handling.patch 55780b43-EFI-early-add-mapbs-to-map-EfiBootServices-Code-Data.patch 55780b97-EFI-support-default-attributes-to-map-Runtime-service-areas.patch - Replace 5124efbe-add-qxl-support.patch with the variant that finally made it upstream, 554cc211-libxl-add-qxl.patch - bsc#931627 - VUL-0: CVE-2015-4105: XSA-130: xen: Guest triggerable qemu MSI-X pass-through error messages qemu-MSI-X-latch-writes.patch - bsc#907514 - Bus fatal error & sles12 sudden reboot has been observed - bsc#910258 - SLES12 Xen host crashes with FATAL NMI after shutdown of guest with VT-d NIC - bsc#918984 - Bus fatal error & sles11-SP4 sudden reboot has been observed - bsc#923967 - Partner-L3: Bus fatal error & sles11-SP3 sudden reboot has been observed x86-MSI-X-teardown.patch x86-MSI-X-enable.patch x86-MSI-X-guest-mask.patch x86-MSI-X-maskall.patch qemu-MSI-X-enable-maskall.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=364
38 lines
1.5 KiB
Diff
38 lines
1.5 KiB
Diff
tools: libxl: allow permissive qemu-upstream pci passthrough
|
|
|
|
Since XSA-131 qemu-xen now restricts access to PCI cfg by default. In
|
|
order to allow local configuration of the existing libxl_device_pci
|
|
"permissive" flag needs to be plumbed through via the new QMP property
|
|
added by the XSA-131 patches.
|
|
|
|
Versions of QEMU prior to XSA-131 did not support this permissive
|
|
property, so we only pass it if it is true. Older versions only
|
|
supported permissive mode.
|
|
|
|
qemu-xen-traditional already supports the permissive mode setting via
|
|
xenstore.
|
|
|
|
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
|
|
|
|
--- a/tools/libxl/libxl_qmp.c
|
|
+++ b/tools/libxl/libxl_qmp.c
|
|
@@ -835,6 +835,18 @@ int libxl__qmp_pci_add(libxl__gc *gc, in
|
|
QMP_PARAMETERS_SPRINTF(&args, "addr", "%x.%x",
|
|
PCI_SLOT(pcidev->vdevfn), PCI_FUNC(pcidev->vdevfn));
|
|
}
|
|
+ /*
|
|
+ * Version of QEMU prior to the XSA-131 fix did not support this
|
|
+ * property and were effectively always in permissive mode. The
|
|
+ * fix for XSA-131 switched the default to be restricted by
|
|
+ * default and added the permissive property.
|
|
+ *
|
|
+ * Therefore in order to support both old and new QEMU we only set
|
|
+ * the permissive flag if it is true. Users of older QEMU have no
|
|
+ * reason to set the flag so this is ok.
|
|
+ */
|
|
+ if (pcidev->permissive)
|
|
+ qmp_parameters_add_bool(gc, &args, "permissive", true);
|
|
|
|
rc = qmp_synchronous_send(qmp, "device_add", args,
|
|
NULL, NULL, qmp->timeout);
|