[libvirt] [PATCH v3 3/3] qemu: Generate channel target paths on hotplug as well

Peter Krempa pkrempa at redhat.com
Thu Jun 9 11:00:42 UTC 2016


On Sun, Jun 05, 2016 at 02:41:06 +0200, Martin Kletzander wrote:
> Since commit 714080791778e3dfbd484ccb3953bffd820b8ba9, qemu agent
> channel cannot be plugged in because we won't generate its path
> automatically.  Let's not only fix that, but also add tests for it so
> next time it's checked for.
> 
> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1322210
> 
> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
> ---
>  src/qemu/qemu_hotplug.c                            |  3 ++
>  tests/qemuhotplugtest.c                            |  7 +++
>  .../qemuhotplug-hotplug-base+qemu-agent-detach.xml | 58 ++++++++++++++++++++++
>  .../qemuhotplug-hotplug-base+qemu-agent.xml        | 58 ++++++++++++++++++++++
>  ...hotplug-hotplug-base-live+qemu-agent-detach.xml | 58 ++++++++++++++++++++++
>  .../qemuhotplug-hotplug-base-live+qemu-agent.xml   | 58 ++++++++++++++++++++++
>  .../qemuhotplug-qemu-agent-detach.xml              |  5 ++
>  .../qemuhotplugtestdata/qemuhotplug-qemu-agent.xml |  5 ++
>  8 files changed, 252 insertions(+)
>  create mode 100644 tests/qemuhotplugtestdata/qemuhotplug-hotplug-base+qemu-agent-detach.xml
>  create mode 100644 tests/qemuhotplugtestdata/qemuhotplug-hotplug-base+qemu-agent.xml
>  create mode 100644 tests/qemuhotplugtestdata/qemuhotplug-hotplug-base-live+qemu-agent-detach.xml
>  create mode 100644 tests/qemuhotplugtestdata/qemuhotplug-hotplug-base-live+qemu-agent.xml
>  create mode 100644 tests/qemuhotplugtestdata/qemuhotplug-qemu-agent-detach.xml
>  create mode 100644 tests/qemuhotplugtestdata/qemuhotplug-qemu-agent.xml
> 
> diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
> index 6ce0a84cfae2..582a0e69a41f 100644
> --- a/src/qemu/qemu_hotplug.c
> +++ b/src/qemu/qemu_hotplug.c
> @@ -1502,6 +1502,9 @@ int qemuDomainAttachChrDevice(virQEMUDriverPtr driver,
>      char *charAlias = NULL;
>      bool need_release = false;
>
> +    if (qemuDomainPrepareChannel(chr, priv->channelTargetDir) < 0)

At this point it's not certain that this is a channel. This can be any
other character device.

> +        goto cleanup;
> +
>      if (qemuAssignDeviceChrAlias(vmdef, chr, -1) < 0)
>          goto cleanup;
> 

ACK with the check above fixed.




More information about the libvir-list mailing list