1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 23:07:35 +00:00

Kernel: Create and use USER_RANGE_CEILING

We had an inconsistency in valid user addresses. is_user_range() was
checking against the kernel base address, but previous changes caused
the maximum valid user addressable range to be 32 MiB below that.

This patch stops mmap(MAP_FIXED) of a range between these two bounds
from panic-ing the kernel in RangeAllocator::allocate_specific.
This commit is contained in:
Andrew Kaster 2021-07-06 20:25:22 -06:00 committed by Andreas Kling
parent ab196b484a
commit 578d45b480
3 changed files with 4 additions and 2 deletions

View file

@ -63,7 +63,7 @@ UNMAP_AFTER_INIT void PageDirectory::allocate_kernel_directory()
PageDirectory::PageDirectory(const RangeAllocator* parent_range_allocator)
{
constexpr FlatPtr userspace_range_base = 0x00800000;
constexpr FlatPtr userspace_range_ceiling = 0xbe000000;
constexpr FlatPtr userspace_range_ceiling = USER_RANGE_CEILING;
ScopedSpinLock lock(s_mm_lock);
if (parent_range_allocator) {