mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-24 03:59:52 +00:00
pc: memhotplug: fix incorrectly set reserved-memory-end
reserved-memory-end tells firmware address from which it could start treating memory as PCI address space and map PCI BARs after it to avoid collisions with RAM. Currently it is incorrectly pointing to address where hotplugged memory range starts which could redirect hotplugged RAM accesses to PCI BARs when firmware maps them over RAM or viceverse. Fix this by pointing reserved-memory-end to the end of memory hotplug area. Signed-off-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
9372e3f567
commit
3385e8e264
@ -1412,7 +1412,9 @@ FWCfgState *pc_memory_init(PCMachineState *pcms,
|
||||
|
||||
if (guest_info->has_reserved_memory && pcms->hotplug_memory.base) {
|
||||
uint64_t *val = g_malloc(sizeof(*val));
|
||||
*val = cpu_to_le64(ROUND_UP(pcms->hotplug_memory.base, 0x1ULL << 30));
|
||||
uint64_t res_mem_end = pcms->hotplug_memory.base +
|
||||
memory_region_size(&pcms->hotplug_memory.mr);
|
||||
*val = cpu_to_le64(ROUND_UP(res_mem_end, 0x1ULL << 30));
|
||||
fw_cfg_add_file(fw_cfg, "etc/reserved-memory-end", val, sizeof(*val));
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user