openwrt: allocator: Fix recommitted pages not being zeroed when madvise is not available.
Support kernels built without CONFIG_ADVISE_SYSCALLS on small embedded devices.
parent
c52b70794e
commit
fbf63df3bc
|
@ -271,6 +271,8 @@ constexpr PA_COMPONENT_EXPORT(
|
||||||
PARTITION_ALLOC) bool DecommittedMemoryIsAlwaysZeroed() {
|
PARTITION_ALLOC) bool DecommittedMemoryIsAlwaysZeroed() {
|
||||||
#if PA_BUILDFLAG(IS_APPLE)
|
#if PA_BUILDFLAG(IS_APPLE)
|
||||||
return false;
|
return false;
|
||||||
|
#elif defined(NO_MADVISE_SYSCALL)
|
||||||
|
return false;
|
||||||
#else
|
#else
|
||||||
return true;
|
return true;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -316,6 +316,9 @@ void DiscardSystemPagesInternal(uintptr_t address, size_t length) {
|
||||||
ret = madvise(ptr, length, MADV_DONTNEED);
|
ret = madvise(ptr, length, MADV_DONTNEED);
|
||||||
}
|
}
|
||||||
PA_PCHECK(ret == 0);
|
PA_PCHECK(ret == 0);
|
||||||
|
#elif defined(NO_MADVISE_SYSCALL)
|
||||||
|
static_cast<void>(ptr);
|
||||||
|
static_cast<void>(length);
|
||||||
#else // PA_BUILDFLAG(IS_APPLE)
|
#else // PA_BUILDFLAG(IS_APPLE)
|
||||||
// We have experimented with other flags, but with suboptimal results.
|
// We have experimented with other flags, but with suboptimal results.
|
||||||
//
|
//
|
||||||
|
|
Loading…
Reference in New Issue