diff --git a/kernel/kernel/Process.cpp b/kernel/kernel/Process.cpp index 19c762b1..940eb221 100644 --- a/kernel/kernel/Process.cpp +++ b/kernel/kernel/Process.cpp @@ -2326,9 +2326,12 @@ namespace Kernel if (len == 0) return BAN::Error::from_errno(EINVAL); - const vaddr_t vaddr = reinterpret_cast(addr); - if (vaddr % PAGE_SIZE != 0) - return BAN::Error::from_errno(EINVAL); + vaddr_t vaddr = reinterpret_cast(addr); + if (auto rem = vaddr % PAGE_SIZE) + { + vaddr -= rem; + len += PAGE_SIZE - rem; + } if (auto rem = len % PAGE_SIZE) len += PAGE_SIZE - rem;