]> git.proxmox.com Git - mirror_qemu.git/blobdiff - exec.c
hostmem-file: add "align" option
[mirror_qemu.git] / exec.c
diff --git a/exec.c b/exec.c
index d28fc0cd3d9fd2e0a77aaa27d0343202d46bef88..629a5083851d5c3a4d3db64008196df052ce9778 100644 (file)
--- a/exec.c
+++ b/exec.c
@@ -1612,7 +1612,13 @@ static void *file_ram_alloc(RAMBlock *block,
     void *area;
 
     block->page_size = qemu_fd_getpagesize(fd);
-    block->mr->align = block->page_size;
+    if (block->mr->align % block->page_size) {
+        error_setg(errp, "alignment 0x%" PRIx64
+                   " must be multiples of page size 0x%zx",
+                   block->mr->align, block->page_size);
+        return NULL;
+    }
+    block->mr->align = MAX(block->page_size, block->mr->align);
 #if defined(__s390x__)
     if (kvm_enabled()) {
         block->mr->align = MAX(block->mr->align, QEMU_VMALLOC_ALIGN);