Commit de1b9b85 authored by Gerd Hoffmann's avatar Gerd Hoffmann
Browse files

qxl: use uint64_t for vram size

This allows for the 64bit vram bar to become larger than 2G
(try -device qxl-vga,vram64_size_mb=8192).

https://bugzilla.redhat.com/show_bug.cgi?id=1340439



Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
Message-id: 1465389648-5179-1-git-send-email-kraxel@redhat.com
parent 791b7d23
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -1914,7 +1914,7 @@ static void qxl_init_ramsize(PCIQXLDevice *qxl)

    /* vram (surfaces, 64bit, bar 4+5) */
    if (qxl->vram_size_mb != -1) {
        qxl->vram_size = qxl->vram_size_mb * 1024 * 1024;
        qxl->vram_size = (uint64_t)qxl->vram_size_mb * 1024 * 1024;
    }
    if (qxl->vram_size < qxl->vram32_size) {
        qxl->vram_size = qxl->vram32_size;
@@ -2020,9 +2020,9 @@ static void qxl_realize_common(PCIQXLDevice *qxl, Error **errp)
    dprint(qxl, 1, "ram/%s: %d MB [region 0]\n",
           qxl->id == 0 ? "pri" : "sec",
           qxl->vga.vram_size / (1024*1024));
    dprint(qxl, 1, "vram/32: %d MB [region 1]\n",
    dprint(qxl, 1, "vram/32: %" PRIx64 "d MB [region 1]\n",
           qxl->vram32_size / (1024*1024));
    dprint(qxl, 1, "vram/64: %d MB %s\n",
    dprint(qxl, 1, "vram/64: %" PRIx64 "d MB %s\n",
           qxl->vram_size / (1024*1024),
           qxl->vram32_size < qxl->vram_size ? "[region 4]" : "[unmapped]");

@@ -2276,7 +2276,7 @@ static VMStateDescription qxl_vmstate = {
static Property qxl_properties[] = {
        DEFINE_PROP_UINT32("ram_size", PCIQXLDevice, vga.vram_size,
                           64 * 1024 * 1024),
        DEFINE_PROP_UINT32("vram_size", PCIQXLDevice, vram32_size,
        DEFINE_PROP_UINT64("vram_size", PCIQXLDevice, vram32_size,
                           64 * 1024 * 1024),
        DEFINE_PROP_UINT32("revision", PCIQXLDevice, revision,
                           QXL_DEFAULT_REVISION),
+2 −2
Original line number Diff line number Diff line
@@ -104,9 +104,9 @@ typedef struct PCIQXLDevice {
#endif

    /* vram pci bar */
    uint32_t           vram_size;
    uint64_t           vram_size;
    MemoryRegion       vram_bar;
    uint32_t           vram32_size;
    uint64_t           vram32_size;
    MemoryRegion       vram32_bar;

    /* io bar */