Fix phys_addr_out

phys_addr_out should be equal to search_start in cases where search_start is greater than the dmem_area base.
This commit is contained in:
Stephen Miller 2025-04-17 21:46:34 -05:00
parent e92053aa63
commit 6c277d7c6c

View file

@ -639,7 +639,7 @@ int MemoryManager::DirectQueryAvailable(PAddr search_start, PAddr search_end, si
continue;
}
const auto aligned_base = alignment > 0 ? Common::AlignUp(dmem_area->second.base, alignment)
auto aligned_base = alignment > 0 ? Common::AlignUp(dmem_area->second.base, alignment)
: dmem_area->second.base;
const auto alignment_size = aligned_base - dmem_area->second.base;
auto remaining_size =
@ -650,6 +650,7 @@ int MemoryManager::DirectQueryAvailable(PAddr search_start, PAddr search_end, si
remaining_size = remaining_size > (search_start - dmem_area->second.base)
? remaining_size - (search_start - dmem_area->second.base)
: 0;
aligned_base = Common::AlignUp(search_start, alignment);
}
if (dmem_area->second.GetEnd() > search_end) {