[libvirt] [PATCH] qemu: don't fail capabilities check on 0.12.x
Wen Congyang
wency at cn.fujitsu.com
Wed Jan 19 01:42:15 UTC 2011
At 01/19/2011 12:51 AM, Eric Blake Write:
> Fixes regression introduced in commit 2211518, where all qemu 0.12.x
> fails to start, as does qemu 0.13.x lacking the pci-assign device.
>
> * src/qemu/qemu_capabilities.c (qemuCapsExtractVersionInfo): Check
> for -device driver,? support.
> (qemuCapsExtractDeviceStr): Avoid failure if all probed devices
> are unsupported.
> Reported by Ken Congyang.
s/Ken/Wen/
This patch seems fine to me.
> ---
>
> src/qemu/qemu_capabilities.c | 13 ++++++++++---
> 1 files changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index 1f0a3c2..faf7d44 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -1048,10 +1048,14 @@ qemuCapsExtractDeviceStr(const char *qemu,
>
> /* Cram together all device-related queries into one invocation;
> * the output format makes it possible to distinguish what we
> - * need. Unrecognized '-device bogus,?' cause an error in
> - * isolation, but are silently ignored in combination with
> - * '-device ?'. */
> + * need. With qemu 0.13.0 and later, unrecognized '-device
> + * bogus,?' cause an error in isolation, but are silently ignored
> + * in combination with '-device ?'. Qemu 0.12.x doesn't
> + * understand '-device name,?', and always exits with status 1 for
> + * the simpler '-device ?', so this function is really only useful
> + * for parsing out features added in 0.13.0 or later. */
> cmd = virCommandNewArgList(qemu,
> + "-device", "?",
> "-device", "pci-assign,?",
> "-device", "virtio-blk-pci,?",
> NULL);
> @@ -1119,7 +1123,10 @@ int qemuCapsExtractVersionInfo(const char *qemu,
> &version, &is_kvm, &kvm_version) == -1)
> goto cleanup;
>
> + /* Only call qemuCapsExtractDeviceStr for qemu 0.13.0+, since it
> + * won't set any additional flags for qemu 0.12.x. */
> if ((flags & QEMUD_CMD_FLAG_DEVICE) &&
> + strstr(help, "-device driver,?") &&
> qemuCapsExtractDeviceStr(qemu, &flags) < 0)
> goto cleanup;
>
More information about the libvir-list
mailing list