diff --git a/machine/src/mm/mod.rs b/machine/src/mm/mod.rs index 796b1f7..a1e232d 100644 --- a/machine/src/mm/mod.rs +++ b/machine/src/mm/mod.rs @@ -30,7 +30,12 @@ pub const fn align_up(value: usize, alignment: usize) -> usize { "`alignment` must be a power of two" ); - (value + alignment - 1) & !(alignment - 1) + let align_mask = alignment - 1; + if value & align_mask == 0 { + value // already aligned + } else { + (value | align_mask) + 1 + } } /// Check if a value is aligned to a given alignment.