[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 05/15] memory: assert that PhysPageEntry's ptr does
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 05/15] memory: assert that PhysPageEntry's ptr does not overflow |
Date: |
Fri, 24 May 2013 19:02:57 +0200 |
While sized to 15 bits in PhysPageEntry, the ptr field is ORed into the
iotlb entries together with a page-aligned pointer. The ptr field must
not overflow into this page-aligned value, assert that it is smaller than
the page size.
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
exec.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/exec.c b/exec.c
index 1355661..8562fca 100644
--- a/exec.c
+++ b/exec.c
@@ -713,6 +713,12 @@ static void destroy_all_mappings(AddressSpaceDispatch *d)
static uint16_t phys_section_add(MemoryRegionSection *section)
{
+ /* The physical section number is ORed with a page-aligned
+ * pointer to produce the iotlb entries. Thus it should
+ * never overflow into the page-aligned value.
+ */
+ assert(phys_sections_nb < TARGET_PAGE_SIZE);
+
if (phys_sections_nb == phys_sections_nb_alloc) {
phys_sections_nb_alloc = MAX(phys_sections_nb_alloc * 2, 16);
phys_sections = g_renew(MemoryRegionSection, phys_sections,
--
1.8.1.4
- [Qemu-devel] [PULL 00/15] IOMMU patches for 1.6, part 1, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 01/15] exec: remove obsolete comment, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 02/15] exec: eliminate qemu_put_ram_ptr, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 03/15] exec: make qemu_get_ram_ptr private, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 05/15] memory: assert that PhysPageEntry's ptr does not overflow,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 04/15] exec: eliminate stq_phys_notdirty, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 06/15] memory: allow memory_region_find() to run on non-root memory regions, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 07/15] memory: Replace open-coded memory_region_is_romd, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 08/15] memory: Rename readable flag to romd_mode, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 09/15] memory: do not duplicate memory_region_destructor_none, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 10/15] memory: make memory_global_sync_dirty_bitmap take an AddressSpace, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 11/15] memory: fix address space initialization/destruction, Paolo Bonzini, 2013/05/24
- [Qemu-devel] [PATCH 12/15] s390x: reduce TARGET_PHYS_ADDR_SPACE_BITS to 62, Paolo Bonzini, 2013/05/24