X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libpcsxcore%2Flightrec%2Fmem.c;h=9134d893916100053d7566a56fbfecec71e419a6;hb=c6a249e3b48161bcf6d8ab3eb0538d96edd67797;hp=b5caa78366b29705840cefdf1d98781d6a6ca176;hpb=b992f6b7c6c0da62499a19c2801be040369907b2;p=pcsx_rearmed.git diff --git a/libpcsxcore/lightrec/mem.c b/libpcsxcore/lightrec/mem.c index b5caa783..9134d893 100644 --- a/libpcsxcore/lightrec/mem.c +++ b/libpcsxcore/lightrec/mem.c @@ -95,11 +95,16 @@ static int lightrec_mmap_ram(bool hugetlb) base = supported_io_bases[i]; for (j = 0; j < 4; j++) { - map = mmap_huge((void *)(base + j * 0x200000), - 0x200000, PROT_READ | PROT_WRITE, + void *base_ptr = (void *)(base + j * 0x200000); + map = mmap_huge(base_ptr, 0x200000, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_FIXED_NOREPLACE, memfd, 0); if (map == MAP_FAILED) break; + // some systems ignore MAP_FIXED_NOREPLACE + if (map != base_ptr) { + munmap(map, 0x200000); + break; + } } /* Impossible to map using this base */