[libvirt] [PATCH v1 23/26] qemu: move qemuBuildGraphicsEGLHeadlessCommandLine validation to qemu_domain.c

Cole Robinson crobinso at redhat.com
Mon Dec 16 22:45:12 UTC 2019


On 12/9/19 6:15 PM, Daniel Henrique Barboza wrote:
> Move EGL Headless validation from qemuBuildGraphicsEGLHeadlessCommandLine()
> to qemuDomainDeviceDefValidateGraphics(). This function is called by
> qemuDomainDefValidate(), validating the graphics parameters in domain
> define time.
> 
> Tests were adapted to consider validation in this earlier stage.
> 
> Signed-off-by: Daniel Henrique Barboza <danielhb413 at gmail.com>
> ---
>  src/qemu/qemu_command.c                                | 10 +---------
>  src/qemu/qemu_domain.c                                 |  7 +++++++
>  tests/qemuxml2argvdata/graphics-egl-headless.args      |  2 +-
>  .../qemuxml2argvdata/graphics-spice-egl-headless.args  |  2 +-
>  tests/qemuxml2argvdata/graphics-vnc-egl-headless.args  |  2 +-
>  tests/qemuxml2argvtest.c                               |  9 ++++++---
>  tests/qemuxml2xmltest.c                                |  6 ++++--
>  7 files changed, 21 insertions(+), 17 deletions(-)
> 
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index aceb42a289..efc70d6de9 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -7729,7 +7729,6 @@ qemuBuildGraphicsSPICECommandLine(virQEMUDriverConfigPtr cfg,
>  static int
>  qemuBuildGraphicsEGLHeadlessCommandLine(virQEMUDriverConfigPtr cfg G_GNUC_UNUSED,
>                                          virCommandPtr cmd,
> -                                        virQEMUCapsPtr qemuCaps,
>                                          virDomainGraphicsDefPtr graphics)
>  {
>      g_auto(virBuffer) opt = VIR_BUFFER_INITIALIZER;
> @@ -7737,13 +7736,6 @@ qemuBuildGraphicsEGLHeadlessCommandLine(virQEMUDriverConfigPtr cfg G_GNUC_UNUSED
>      virBufferAddLit(&opt, "egl-headless");
>  
>      if (graphics->data.egl_headless.rendernode) {
> -        if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_EGL_HEADLESS_RENDERNODE)) {
> -            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> -                           _("This QEMU doesn't support OpenGL rendernode "
> -                             "with egl-headless graphics type"));
> -            return -1;
> -        }
> -
>          virBufferAddLit(&opt, ",rendernode=");
>          virQEMUBuildBufferEscapeComma(&opt,
>                                        graphics->data.egl_headless.rendernode);
> @@ -7788,7 +7780,7 @@ qemuBuildGraphicsCommandLine(virQEMUDriverConfigPtr cfg,
>              break;
>          case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS:
>              if (qemuBuildGraphicsEGLHeadlessCommandLine(cfg, cmd,
> -                                                        qemuCaps, graphics) < 0)
> +                                                        graphics) < 0)
>                  return -1;
>  
>              break;
> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index 9f29d2afbe..415f0916a2 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -7717,6 +7717,13 @@ qemuDomainDeviceDefValidateGraphics(const virDomainGraphicsDef *graphics,
>          break;
>  
>      case VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS:
> +        if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_EGL_HEADLESS_RENDERNODE)) {
> +            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> +                           _("This QEMU doesn't support OpenGL rendernode "
> +                             "with egl-headless graphics type"));
> +            return -1;
> +        }
> +

This looks like it is missing the associated check for
graphics->data.egl_headless.rendernode, like the original check had. I
wouldn't expect the test .args output later to change

- Cole




More information about the libvir-list mailing list