[libvirt] [PATCH] qemu: Fix virQEMUCapsFindTarget on ppc64le

virQEMUCapsFindTarget is supposed to find an alternative QEMU binary if qemu-system-$GUEST_ARCH doesn't exist. The alternative is using host architecture when it is compatible with $GUEST_ARCH. But a special treatment has to be applied for ppc64le since the QEMU binary is always called qemu-system-ppc64. Broken by me in v2.2.0-171-gf2e71550d. https://bugzilla.redhat.com/show_bug.cgi?id=1403745 Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 081afc566..f4ca84e98 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -482,13 +482,13 @@ static virArch virQEMUCapsFindTarget(virArch hostarch, virArch guestarch) { + if (virQEMUCapsGuestIsNative(hostarch, guestarch)) + guestarch = hostarch; + /* Both ppc64 and ppc64le guests can use the ppc64 target */ if (ARCH_IS_PPC64(guestarch)) guestarch = VIR_ARCH_PPC64; - if (virQEMUCapsGuestIsNative(hostarch, guestarch)) - guestarch = hostarch; - return guestarch; } -- 2.11.0

On Tue, Dec 13, 2016 at 05:21:24PM +0100, Jiri Denemark wrote:
virQEMUCapsFindTarget is supposed to find an alternative QEMU binary if qemu-system-$GUEST_ARCH doesn't exist. The alternative is using host architecture when it is compatible with $GUEST_ARCH. But a special treatment has to be applied for ppc64le since the QEMU binary is always called qemu-system-ppc64.
Broken by me in v2.2.0-171-gf2e71550d.
https://bugzilla.redhat.com/show_bug.cgi?id=1403745
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 081afc566..f4ca84e98 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -482,13 +482,13 @@ static virArch virQEMUCapsFindTarget(virArch hostarch, virArch guestarch) { + if (virQEMUCapsGuestIsNative(hostarch, guestarch)) + guestarch = hostarch; + /* Both ppc64 and ppc64le guests can use the ppc64 target */ if (ARCH_IS_PPC64(guestarch)) guestarch = VIR_ARCH_PPC64;
- if (virQEMUCapsGuestIsNative(hostarch, guestarch)) - guestarch = hostarch; - return guestarch; }
ACK, that's an easier fix than I anticipated :-) Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://entangle-photo.org -o- http://search.cpan.org/~danberr/ :|

On Tue, Dec 13, 2016 at 04:23:48PM +0000, Daniel P. Berrange wrote:
On Tue, Dec 13, 2016 at 05:21:24PM +0100, Jiri Denemark wrote:
virQEMUCapsFindTarget is supposed to find an alternative QEMU binary if qemu-system-$GUEST_ARCH doesn't exist. The alternative is using host architecture when it is compatible with $GUEST_ARCH. But a special treatment has to be applied for ppc64le since the QEMU binary is always called qemu-system-ppc64.
Broken by me in v2.2.0-171-gf2e71550d.
https://bugzilla.redhat.com/show_bug.cgi?id=1403745
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 081afc566..f4ca84e98 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -482,13 +482,13 @@ static virArch virQEMUCapsFindTarget(virArch hostarch, virArch guestarch) { + if (virQEMUCapsGuestIsNative(hostarch, guestarch)) + guestarch = hostarch; + /* Both ppc64 and ppc64le guests can use the ppc64 target */ if (ARCH_IS_PPC64(guestarch)) guestarch = VIR_ARCH_PPC64;
- if (virQEMUCapsGuestIsNative(hostarch, guestarch)) - guestarch = hostarch; - return guestarch; }
ACK, that's an easier fix than I anticipated :-)
Oh and can you push to appropriate stable branches Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://entangle-photo.org -o- http://search.cpan.org/~danberr/ :|

On Tue, Dec 13, 2016 at 16:25:22 +0000, Daniel P. Berrange wrote:
On Tue, Dec 13, 2016 at 04:23:48PM +0000, Daniel P. Berrange wrote:
On Tue, Dec 13, 2016 at 05:21:24PM +0100, Jiri Denemark wrote:
virQEMUCapsFindTarget is supposed to find an alternative QEMU binary if qemu-system-$GUEST_ARCH doesn't exist. The alternative is using host architecture when it is compatible with $GUEST_ARCH. But a special treatment has to be applied for ppc64le since the QEMU binary is always called qemu-system-ppc64.
Broken by me in v2.2.0-171-gf2e71550d.
https://bugzilla.redhat.com/show_bug.cgi?id=1403745
Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/qemu/qemu_capabilities.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 081afc566..f4ca84e98 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -482,13 +482,13 @@ static virArch virQEMUCapsFindTarget(virArch hostarch, virArch guestarch) { + if (virQEMUCapsGuestIsNative(hostarch, guestarch)) + guestarch = hostarch; + /* Both ppc64 and ppc64le guests can use the ppc64 target */ if (ARCH_IS_PPC64(guestarch)) guestarch = VIR_ARCH_PPC64;
- if (virQEMUCapsGuestIsNative(hostarch, guestarch)) - guestarch = hostarch; - return guestarch; }
ACK, that's an easier fix than I anticipated :-)
Thanks, I pushed the patch to master, but...
Oh and can you push to appropriate stable branches
there's no -maint branch beyond v2.2.0 (and 2.2.0 is not affected). Jirka
participants (2)
-
Daniel P. Berrange
-
Jiri Denemark