summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2022-12-20 14:30:03 -0500
committerMarge Bot <ben+marge-bot@smart-cactus.org>2022-12-22 23:41:42 -0500
commit14b2e3d3dda104c62c5abafd3353dd0315de71ad (patch)
tree5787236a8d34311f79dffcbcc3a2ec4e8e9f118d
parent317f45c154f6fe25d50ef2f3febcc5883ff1b1ca (diff)
downloadhaskell-14b2e3d3dda104c62c5abafd3353dd0315de71ad.tar.gz
rts/m32: Fix sanity checking
Previously we would attempt to clear pages which were marked as read-only. Fix this.
-rw-r--r--rts/linker/M32Alloc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/rts/linker/M32Alloc.c b/rts/linker/M32Alloc.c
index 6ad316e164..17d3d12459 100644
--- a/rts/linker/M32Alloc.c
+++ b/rts/linker/M32Alloc.c
@@ -286,13 +286,13 @@ m32_release_page(struct m32_page_t *page)
const size_t pgsz = getPageSize();
ssize_t sz = page->filled_page.size;
- IF_DEBUG(sanity, memset(page, 0xaa, sz));
// Break the page, which may be a large multi-page allocation, into
// individual pages for the page pool
while (sz > 0) {
if (m32_free_page_pool_size < M32_MAX_FREE_PAGE_POOL_SIZE) {
mprotectForLinker(page, pgsz, MEM_READ_WRITE);
+ IF_DEBUG(sanity, memset(page, 0xaa, pgsz));
SET_PAGE_TYPE(page, FREE_PAGE);
page->free_page.next = m32_free_page_pool;
m32_free_page_pool = page;