mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-30 18:03:32 +00:00
libxl: fix framebuffer port setting for HVM domains
libxl uses the libxl_vnc_info and libxl_sdl_info fields from the hvm union in libxl_domain_build_info struct when generating QEMU args for VNC or SDL. These fields were left unset by the libxl driver, causing libxl to ignore any user settings. E.g. with <graphics type='vnc' port='5950'/> port would be ignored and QEMU would instead be invoked with -vnc 127.0.0.1:0,to=99 Unlike the libxl_domain_config struct, the libxl_domain_build_info contains only a single libxl_vnc_info and libxl_sdl_info, so populate these fields from the first vfb in libxl_domain_config->vfbs. Signed-off-by: Jim Fehlig <jfehlig@suse.com> Signed-off-by: David Kiarie <davidkiarie4@gmail.com>
This commit is contained in:
parent
b0b5422115
commit
b55cc5f4e3
@ -1022,6 +1022,20 @@ libxlMakeVfbList(libxlDriverPrivatePtr driver,
|
|||||||
d_config->vkbs = x_vkbs;
|
d_config->vkbs = x_vkbs;
|
||||||
d_config->num_vfbs = d_config->num_vkbs = nvfbs;
|
d_config->num_vfbs = d_config->num_vkbs = nvfbs;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* VNC or SDL info must also be set in libxl_domain_build_info
|
||||||
|
* for HVM domains. Use the first vfb device.
|
||||||
|
*/
|
||||||
|
if (STREQ(def->os.type, "hvm")) {
|
||||||
|
libxl_domain_build_info *b_info = &d_config->b_info;
|
||||||
|
libxl_device_vfb vfb = d_config->vfbs[0];
|
||||||
|
|
||||||
|
if (libxl_defbool_val(vfb.vnc.enable))
|
||||||
|
memcpy(&b_info->u.hvm.vnc, &vfb.vnc, sizeof(libxl_vnc_info));
|
||||||
|
else if (libxl_defbool_val(vfb.sdl.enable))
|
||||||
|
memcpy(&b_info->u.hvm.sdl, &vfb.sdl, sizeof(libxl_sdl_info));
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
|
Loading…
Reference in New Issue
Block a user