Kernel/VM: Make local_offset in PhysicalRegion::find_one_free_page unsigned

An extension to #4613, as I didn't notice that it also happens here.
This commit is contained in:
Luke 2020-12-29 01:14:08 +00:00 committed by Andreas Kling
parent eb38fe4a82
commit b980782343
Notes: sideshowbarker 2024-07-19 01:59:31 +09:00

View file

@ -96,11 +96,12 @@ Optional<unsigned> PhysicalRegion::find_one_free_page()
// Check if we can draw one from the return queue
if (m_recently_returned.size() > 0) {
u8 index = get_fast_random<u8>() % m_recently_returned.size();
ptrdiff_t local_offset = m_recently_returned[index].get() - m_lower.get();
Checked<FlatPtr> local_offset = m_recently_returned[index].get();
local_offset -= m_lower.get();
m_recently_returned.remove(index);
ASSERT(local_offset >= 0);
ASSERT((FlatPtr)local_offset < (FlatPtr)(m_pages * PAGE_SIZE));
return local_offset / PAGE_SIZE;
ASSERT(!local_offset.has_overflow());
ASSERT(local_offset.value() < (FlatPtr)(m_pages * PAGE_SIZE));
return local_offset.value() / PAGE_SIZE;
}
return {};
}