@@ -113,7 +113,7 @@ int main(void)
/* Use malloc for the heap, so valgrind can find issues. */
skiboot_heap.start = (unsigned long)malloc(TEST_HEAP_SIZE);
skiboot_heap.len = TEST_HEAP_SIZE;
- skiboot_os_reserve.len = skiboot_heap.start;
+ skiboot_os_reserve.len = 0;
dt_root = dt_new_root("");
dt_add_property_cells(dt_root, "#address-cells", 2);
@@ -110,9 +110,10 @@ int main(void)
const char *last;
/* Use malloc for the heap, so valgrind can find issues. */
- skiboot_heap.start = (unsigned long)malloc(TEST_HEAP_SIZE);
+ skiboot_heap.start = 0;
skiboot_heap.len = TEST_HEAP_SIZE;
- skiboot_os_reserve.len = skiboot_heap.start;
+ skiboot_os_reserve.start = 0;
+ skiboot_os_reserve.len = 0;
dt_root = dt_new_root("");
dt_add_property_cells(dt_root, "#address-cells", 2);
@@ -163,6 +164,5 @@ int main(void)
}
dt_free(dt_root);
- free((void *)(long)skiboot_heap.start);
return 0;
}
We were reserving all of memory up to the heap, which is fine *unless* the system libc chooses to allocate something in that block of memory that we use, which means we have overlapping regions and general pain. This should fix failing unit tests on some systems (e.g. Debian) Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com> --- core/test/run-mem_region_release_unused.c | 2 +- core/test/run-mem_region_release_unused_noalloc.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) --- Changes since v2: - We don't actually need the heap when allocating nothing, and this makes us immune to libc being libc.