notaz.gp2x.de
/
pcsx_rearmed.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6a3fa66
)
lightrec: handle a case of ignored MAP_FIXED_NOREPLACE
author
notaz
<notasas@gmail.com>
Wed, 11 Oct 2023 18:22:17 +0000
(21:22 +0300)
committer
notaz
<notasas@gmail.com>
Wed, 11 Oct 2023 18:22:17 +0000
(21:22 +0300)
libpcsxcore/lightrec/mem.c
patch
|
blob
|
blame
|
history
diff --git
a/libpcsxcore/lightrec/mem.c
b/libpcsxcore/lightrec/mem.c
index
b5caa78
..
9134d89
100644
(file)
--- 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++) {
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;
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 */
}
/* Impossible to map using this base */