24511ba7f9
e4d131b8-mv-virDomainDefPostParseInternal.patch, 3e428670-post-parse-implicit-video.patch, 538012c8-default-vram.patch, 96b21fb0-vram-tests.patch, 400e716d-libxl-noprope-emulator.patch, b90c4b5f-tests-use-qemu-xen.patch bsc#979397 OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=528
82 lines
3.2 KiB
Diff
82 lines
3.2 KiB
Diff
commit 538012c8a30230065d1bfe09892279dd8b89193f
|
|
Author: Ján Tomko <jtomko@redhat.com>
|
|
Date: Wed May 11 12:39:52 2016 +0200
|
|
|
|
Fill out default vram in DeviceDefPostParse
|
|
|
|
Move filling out the default video (v)ram to DeviceDefPostParse.
|
|
|
|
This means it can be removed from virDomainVideoDefParseXML
|
|
and qemuParseCommandLine. Also, we no longer need to special case
|
|
VIR_DOMAIN_VIRT_XEN, since the per-driver callback gets called
|
|
before the generic one.
|
|
|
|
Index: libvirt-1.3.4/src/conf/domain_conf.c
|
|
===================================================================
|
|
--- libvirt-1.3.4.orig/src/conf/domain_conf.c
|
|
+++ libvirt-1.3.4/src/conf/domain_conf.c
|
|
@@ -4155,6 +4155,12 @@ virDomainDeviceDefPostParseInternal(virD
|
|
|
|
if (dev->type == VIR_DOMAIN_DEVICE_VIDEO) {
|
|
virDomainVideoDefPtr video = dev->data.video;
|
|
+ /* Fill out (V)RAM if the driver-specific callback did not do so */
|
|
+ if (video->ram == 0 && video->type == VIR_DOMAIN_VIDEO_TYPE_QXL)
|
|
+ video->ram = virDomainVideoDefaultRAM(def, video->type);
|
|
+ if (video->vram == 0)
|
|
+ video->vram = virDomainVideoDefaultRAM(def, video->type);
|
|
+
|
|
video->ram = VIR_ROUND_UP_POWER_OF_TWO(video->ram);
|
|
video->vram = VIR_ROUND_UP_POWER_OF_TWO(video->vram);
|
|
}
|
|
@@ -11970,10 +11976,6 @@ unsigned int
|
|
virDomainVideoDefaultRAM(const virDomainDef *def,
|
|
const virDomainVideoType type)
|
|
{
|
|
- /* Defer setting default vram to the Xen drivers */
|
|
- if (def->virtType == VIR_DOMAIN_VIRT_XEN)
|
|
- return 0;
|
|
-
|
|
switch (type) {
|
|
case VIR_DOMAIN_VIDEO_TYPE_VGA:
|
|
case VIR_DOMAIN_VIDEO_TYPE_CIRRUS:
|
|
@@ -12152,8 +12154,6 @@ virDomainVideoDefParseXML(xmlNodePtr nod
|
|
_("cannot parse video ram '%s'"), ram);
|
|
goto error;
|
|
}
|
|
- } else if (def->type == VIR_DOMAIN_VIDEO_TYPE_QXL) {
|
|
- def->ram = virDomainVideoDefaultRAM(dom, def->type);
|
|
}
|
|
|
|
if (vram) {
|
|
@@ -12162,8 +12162,6 @@ virDomainVideoDefParseXML(xmlNodePtr nod
|
|
_("cannot parse video vram '%s'"), vram);
|
|
goto error;
|
|
}
|
|
- } else {
|
|
- def->vram = virDomainVideoDefaultRAM(dom, def->type);
|
|
}
|
|
|
|
if (vram64) {
|
|
@@ -18612,7 +18610,6 @@ virDomainDefAddImplicitVideo(virDomainDe
|
|
_("cannot determine default video type"));
|
|
goto cleanup;
|
|
}
|
|
- video->vram = virDomainVideoDefaultRAM(def, video->type);
|
|
video->heads = 1;
|
|
if (VIR_APPEND_ELEMENT(def->videos, def->nvideos, video) < 0)
|
|
goto cleanup;
|
|
Index: libvirt-1.3.4/src/qemu/qemu_parse_command.c
|
|
===================================================================
|
|
--- libvirt-1.3.4.orig/src/qemu/qemu_parse_command.c
|
|
+++ libvirt-1.3.4/src/qemu/qemu_parse_command.c
|
|
@@ -2585,9 +2585,7 @@ qemuParseCommandLine(virCapsPtr caps,
|
|
vid->type = VIR_DOMAIN_VIDEO_TYPE_XEN;
|
|
else
|
|
vid->type = video;
|
|
- vid->vram = virDomainVideoDefaultRAM(def, vid->type);
|
|
if (vid->type == VIR_DOMAIN_VIDEO_TYPE_QXL) {
|
|
- vid->ram = virDomainVideoDefaultRAM(def, vid->type);
|
|
vid->vgamem = QEMU_QXL_VGAMEM_DEFAULT;
|
|
} else {
|
|
vid->ram = 0;
|