Merge branch 'memory/core' into for-mst

* memory/core: (30 commits)
  memory: allow phys_map tree paths to terminate early
  memory: unify PhysPageEntry::node and ::leaf
  memory: change phys_page_set() to set multiple pages
  memory: switch phys_page_set() to a recursive implementation
  memory: replace phys_page_find_alloc() with phys_page_set()
  memory: simplify multipage/subpage registration
  memory: give phys_page_find() its own tree search loop
  memory: make phys_page_find() return a MemoryRegionSection
  memory: move tlb flush to MemoryListener commit callback
  memory: unify the two branches of cpu_register_physical_memory_log()
  memory: fix RAM subpages in newly initialized pages
  memory: compress phys_map node pointers to 16 bits
  memory: store MemoryRegionSection pointers in phys_map
  memory: unify phys_map last level with intermediate levels
  memory: remove first level of l1_phys_map
  memory: change memory registration to rebuild the memory map on each change
  memory: support stateless memory listeners
  memory: split memory listener for the two address spaces
  xen: ignore I/O memory regions
  memory: allow MemoryListeners to observe a specific address space
  ...

Conflicts:
	ioport.c

Signed-off-by: Avi Kivity <avi@redhat.com>
diff --git a/ioport.c b/ioport.c
index 505b252..8a474d3 100644
--- a/ioport.c
+++ b/ioport.c
@@ -375,8 +375,9 @@
                              region, start + off_low, off_high - off_low);
     memory_region_add_subregion(piolist->address_space,
                                 start + off_low, alias);
-    piolist->regions[piolist->nr++] = region;
-    piolist->aliases[piolist->nr++] = alias;
+    piolist->regions[piolist->nr] = region;
+    piolist->aliases[piolist->nr] = alias;
+    ++piolist->nr;
 }
 
 void portio_list_add(PortioList *piolist,