libvirt/538012c8-default-vram.patch
James Fehlig 24511ba7f9 - Fix default video RAM setting
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
2016-05-13 17:55:57 +00:00

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;