Skip to content

Commit bf41ab6

Browse files
authored
memory: Handle 0 alignment in MemoryManager::Allocate (#1692)
1 parent aa5293e commit bf41ab6

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/core/memory.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,12 +96,12 @@ PAddr MemoryManager::PoolExpand(PAddr search_start, PAddr search_end, size_t siz
9696
PAddr MemoryManager::Allocate(PAddr search_start, PAddr search_end, size_t size, u64 alignment,
9797
int memory_type) {
9898
std::scoped_lock lk{mutex};
99+
alignment = alignment > 0 ? alignment : 16_KB;
99100

100101
auto dmem_area = FindDmemArea(search_start);
101102

102103
const auto is_suitable = [&] {
103-
const auto aligned_base = alignment > 0 ? Common::AlignUp(dmem_area->second.base, alignment)
104-
: dmem_area->second.base;
104+
const auto aligned_base = Common::AlignUp(dmem_area->second.base, alignment);
105105
const auto alignment_size = aligned_base - dmem_area->second.base;
106106
const auto remaining_size =
107107
dmem_area->second.size >= alignment_size ? dmem_area->second.size - alignment_size : 0;
@@ -114,7 +114,7 @@ PAddr MemoryManager::Allocate(PAddr search_start, PAddr search_end, size_t size,
114114

115115
// Align free position
116116
PAddr free_addr = dmem_area->second.base;
117-
free_addr = alignment > 0 ? Common::AlignUp(free_addr, alignment) : free_addr;
117+
free_addr = Common::AlignUp(free_addr, alignment);
118118

119119
// Add the allocated region to the list and commit its pages.
120120
auto& area = CarveDmemArea(free_addr, size)->second;

0 commit comments

Comments
 (0)