summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael S. Tsirkin2017-01-19 20:34:28 +0100
committerMichael S. Tsirkin2017-02-01 02:37:17 +0100
commitec42813028d9ede3f9f73b8c943b00ff235ba0c1 (patch)
treed0a836e804255ae0cb63f8c091a642bcc092304d
parentARRAY_SIZE: check that argument is an array (diff)
downloadqemu-ec42813028d9ede3f9f73b8c943b00ff235ba0c1.tar.gz
qemu-ec42813028d9ede3f9f73b8c943b00ff235ba0c1.tar.xz
qemu-ec42813028d9ede3f9f73b8c943b00ff235ba0c1.zip
pci: mark ROMs read-only
Looks like we didn't mark PCI ROMs as RO allowing mischief such as guests writing there. Further, e.g. vhost gets confused trying to allocate enough space to log writes there. Fix it up. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Marcel Apfelbaum <marcel@redhat.com> Tested-by: Laurent Vivier <lvivier@redhat.com>
-rw-r--r--hw/pci/pci.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index 47ca3af69a..a563555e7d 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -2195,7 +2195,7 @@ static void pci_add_option_rom(PCIDevice *pdev, bool is_default_rom,
snprintf(name, sizeof(name), "%s.rom", object_get_typename(OBJECT(pdev)));
}
pdev->has_rom = true;
- memory_region_init_ram(&pdev->rom, OBJECT(pdev), name, size, &error_fatal);
+ memory_region_init_rom(&pdev->rom, OBJECT(pdev), name, size, &error_fatal);
vmstate_register_ram(&pdev->rom, &pdev->qdev);
ptr = memory_region_get_ram_ptr(&pdev->rom);
load_image(path, ptr);