[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 10/11] memory: Make sure root MR won't be added as subregion
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH v2 10/11] memory: Make sure root MR won't be added as subregion |
Date: |
Sat, 17 Apr 2021 12:30:27 +0200 |
From: Peter Xu <peterx@redhat.com>
Add a bool for MR to mark whether this MR is a root MR of an AS. We bail out
asap if this MR is added as a subregion of another MR.
Signed-off-by: Peter Xu <peterx@redhat.com>
---
include/exec/memory.h | 1 +
softmmu/memory.c | 2 ++
2 files changed, 3 insertions(+)
diff --git a/include/exec/memory.h b/include/exec/memory.h
index 5728a681b27..83ac86525b2 100644
--- a/include/exec/memory.h
+++ b/include/exec/memory.h
@@ -477,6 +477,7 @@ struct MemoryRegion {
bool ram_device;
bool enabled;
bool warning_printed; /* For reservations */
+ bool is_root_mr;
uint8_t vga_logging_count;
MemoryRegion *alias;
hwaddr alias_offset;
diff --git a/softmmu/memory.c b/softmmu/memory.c
index d4493ef9e43..409bcaec7f5 100644
--- a/softmmu/memory.c
+++ b/softmmu/memory.c
@@ -2443,6 +2443,7 @@ static void
memory_region_add_subregion_common(MemoryRegion *mr,
MemoryRegion *subregion)
{
assert(!subregion->container);
+ assert(!subregion->is_root_mr);
subregion->container = mr;
subregion->addr = offset;
memory_region_update_container_subregions(subregion);
@@ -2820,6 +2821,7 @@ void address_space_init(AddressSpace *as, MemoryRegion
*root, const char *name)
{
memory_region_ref(root);
as->root = root;
+ root->is_root_mr = true;
as->current_map = NULL;
as->ioeventfd_nb = 0;
as->ioeventfds = NULL;
--
2.26.3
- [PATCH v2 03/11] hw/arm/aspeed: Do not sysbus-map mmio flash region directly, use alias, (continued)
- [PATCH v2 03/11] hw/arm/aspeed: Do not sysbus-map mmio flash region directly, use alias, Philippe Mathieu-Daudé, 2021/04/17
- [PATCH v2 04/11] hw/pci-host: Rename Raven ASIC PCI bridge as raven.c, Philippe Mathieu-Daudé, 2021/04/17
- [PATCH v2 05/11] hw/pci-host/raven: Add PCI_IO_BASE_ADDR definition, Philippe Mathieu-Daudé, 2021/04/17
- [PATCH v2 06/11] hw/pci-host/raven: Assert PCI I/O AddressSpace is based at 0x80000000, Philippe Mathieu-Daudé, 2021/04/17
- [PATCH v2 07/11] hw/pci-host/raven: Use MR alias for AS root, not sysbus mapped MR, Philippe Mathieu-Daudé, 2021/04/17
- [RFC PATCH v2 08/11] hw/pci-host/raven: Remove pointless alias mapping onto system bus, Philippe Mathieu-Daudé, 2021/04/17
- [PATCH v2 09/11] hw/pci-host/prep: Do not directly map bus-master region onto main bus, Philippe Mathieu-Daudé, 2021/04/17
- [PATCH v2 10/11] memory: Make sure root MR won't be added as subregion,
Philippe Mathieu-Daudé <=
- [PATCH v2 11/11] hw/pci-host/raven: Remove temporary assertion 'root MR is zero-based', Philippe Mathieu-Daudé, 2021/04/17
- Re: [PATCH v2 00/11] memory: Forbid mapping AddressSpace root MemoryRegion, Cédric Le Goater, 2021/04/19
- Re: [PATCH v2 00/11] memory: Forbid mapping AddressSpace root MemoryRegion, Peter Xu, 2021/04/20