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 {