Accepting request 487722 from Virtualization
1 OBS-URL: https://build.opensuse.org/request/show/487722 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libvirt?expand=0&rev=226
This commit is contained in:
commit
bd1bf21cb6
@ -0,0 +1,72 @@
|
|||||||
|
From ae102b5d7bccd29bc6015a3e0acefeaa90d097ac Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
Date: Thu, 6 Apr 2017 13:52:30 +0200
|
||||||
|
Subject: [PATCH] qemu: Fix regression when hyperv/vendor_id feature is used
|
||||||
|
|
||||||
|
qemuProcessVerifyHypervFeatures is supposed to check whether all
|
||||||
|
requested hyperv features were actually honored by QEMU/KVM. This is
|
||||||
|
done by checking the corresponding CPUID bits reported by the virtual
|
||||||
|
CPU. In other words, it doesn't work for string properties, such as
|
||||||
|
VIR_DOMAIN_HYPERV_VENDOR_ID (there is no CPUID bit we could check). We
|
||||||
|
could theoretically check all 96 bits corresponding to the vendor
|
||||||
|
string, but luckily we don't have to check the feature at all. If QEMU
|
||||||
|
is too old to support hyperv features, the domain won't even start.
|
||||||
|
Otherwise, it is always supported.
|
||||||
|
|
||||||
|
Without this patch, libvirt refuses to start a domain which contains
|
||||||
|
|
||||||
|
<features>
|
||||||
|
<hyperv>
|
||||||
|
<vendor_id state='on' value='...'/>
|
||||||
|
</hyperv>
|
||||||
|
</features>
|
||||||
|
|
||||||
|
reporting internal error: "unknown CPU feature __kvm_hv_vendor_id.
|
||||||
|
|
||||||
|
This regression was introduced by commit v3.1.0-186-ge9dbe7011, which
|
||||||
|
(by fixing the virCPUDataCheckFeature condition in
|
||||||
|
qemuProcessVerifyHypervFeatures) revealed an old bug in the feature
|
||||||
|
verification code. It's been there ever since the verification was
|
||||||
|
implemented by commit v1.3.3-rc1-5-g95bbe4bf5, which effectively did not
|
||||||
|
check VIR_DOMAIN_HYPERV_VENDOR_ID at all.
|
||||||
|
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=1439424
|
||||||
|
|
||||||
|
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
---
|
||||||
|
src/qemu/qemu_process.c | 6 +++++-
|
||||||
|
1 files changed, 5 insertions(+), 1 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
|
||||||
|
index e450d06..8323a18 100644
|
||||||
|
--- a/src/qemu/qemu_process.c
|
||||||
|
+++ b/src/qemu/qemu_process.c
|
||||||
|
@@ -3793,6 +3793,10 @@ qemuProcessVerifyHypervFeatures(virDomainDefPtr def,
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
for (i = 0; i < VIR_DOMAIN_HYPERV_LAST; i++) {
|
||||||
|
+ /* always supported string property */
|
||||||
|
+ if (i == VIR_DOMAIN_HYPERV_VENDOR_ID)
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
if (def->hyperv_features[i] != VIR_TRISTATE_SWITCH_ON)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
@@ -3821,13 +3825,13 @@ qemuProcessVerifyHypervFeatures(virDomainDefPtr def,
|
||||||
|
case VIR_DOMAIN_HYPERV_SYNIC:
|
||||||
|
case VIR_DOMAIN_HYPERV_STIMER:
|
||||||
|
case VIR_DOMAIN_HYPERV_RESET:
|
||||||
|
- case VIR_DOMAIN_HYPERV_VENDOR_ID:
|
||||||
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
_("host doesn't support hyperv '%s' feature"),
|
||||||
|
virDomainHypervTypeToString(i));
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
/* coverity[dead_error_begin] */
|
||||||
|
+ case VIR_DOMAIN_HYPERV_VENDOR_ID:
|
||||||
|
case VIR_DOMAIN_HYPERV_LAST:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
1.7.1
|
||||||
|
|
@ -1,3 +1,11 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Apr 12 22:06:09 UTC 2017 - petracvv@opensuse.org
|
||||||
|
|
||||||
|
- qemu: Fix regression when hyperv/vendor_id feature is used
|
||||||
|
Added patch:
|
||||||
|
ae102b5d7-qemu-fix-regression-when-hyperv-vendor_id-feature-is-used.patch
|
||||||
|
boo#1033893
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Apr 3 04:40:57 UTC 2017 - jfehlig@suse.com
|
Mon Apr 3 04:40:57 UTC 2017 - jfehlig@suse.com
|
||||||
|
|
||||||
|
@ -317,6 +317,7 @@ Source4: libvirtd-relocation-server.fw
|
|||||||
Source99: baselibs.conf
|
Source99: baselibs.conf
|
||||||
Source100: %{name}-rpmlintrc
|
Source100: %{name}-rpmlintrc
|
||||||
# Upstream patches
|
# Upstream patches
|
||||||
|
Patch0: ae102b5d7-qemu-fix-regression-when-hyperv-vendor_id-feature-is-used.patch
|
||||||
# Patches pending upstream review
|
# Patches pending upstream review
|
||||||
Patch100: libxl-dom-reset.patch
|
Patch100: libxl-dom-reset.patch
|
||||||
Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch
|
Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch
|
||||||
@ -885,6 +886,7 @@ libvirt plugin for NSS for translating domain names into IP addresses.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch0 -p1
|
||||||
%patch100 -p1
|
%patch100 -p1
|
||||||
%patch101 -p1
|
%patch101 -p1
|
||||||
%patch150 -p1
|
%patch150 -p1
|
||||||
|
Loading…
Reference in New Issue
Block a user