diff --git a/embassy-stm32/src/eth/mod.rs b/embassy-stm32/src/eth/mod.rs
index 89d2c5a3d..b632861bf 100644
--- a/embassy-stm32/src/eth/mod.rs
+++ b/embassy-stm32/src/eth/mod.rs
@@ -42,8 +42,10 @@ impl<const TX: usize, const RX: usize> PacketQueue<TX, RX> {
     }
 
     // Allow to initialize a Self without requiring it to go on the stack
-    pub unsafe fn init(this: &mut MaybeUninit<Self>) {
-        this.as_mut_ptr().write_bytes(0u8, core::mem::size_of::<Self>());
+    pub fn init(this: &mut MaybeUninit<Self>) {
+        unsafe {
+            this.as_mut_ptr().write_bytes(0u8, core::mem::size_of::<Self>());
+        }
     }
 }