diff --git a/src/allocator/frame/buddy.rs b/src/allocator/frame/buddy.rs index 3e371b3091..16240ec883 100644 --- a/src/allocator/frame/buddy.rs +++ b/src/allocator/frame/buddy.rs @@ -16,7 +16,6 @@ use crate::{ #[repr(transparent)] struct BuddyUsage(u8); -#[derive(Clone, Copy)] #[repr(packed)] struct BuddyEntry { base: PhysicalAddress, @@ -28,6 +27,19 @@ struct BuddyEntry { phantom: PhantomData, } +impl Clone for BuddyEntry { + fn clone(&self) -> Self { + Self { + base: self.base, + size: self.size, + skip: self.skip, + used: self.used, + phantom: PhantomData, + } + } +} +impl Copy for BuddyEntry {} + impl BuddyEntry { fn empty() -> Self { Self {