diff --git a/src/peripheral/nvic.rs b/src/peripheral/nvic.rs
index 60f9df0fc8d075fb8069809b10c81d7a461c5363..ecfdd7e82f1840db35a28dd3acfbdab9b793c656 100644
--- a/src/peripheral/nvic.rs
+++ b/src/peripheral/nvic.rs
@@ -103,7 +103,7 @@ impl NVIC {
         #[cfg(armv6m)]
         {
             // NOTE(unsafe) atomic read with no side effects
-            let ipr_n = (*Self::ptr()).ipr[Self::ipr_index(&interrupt)].read();
+            let ipr_n = unsafe { (*Self::ptr()).ipr[Self::ipr_index(&interrupt)].read() };
             let prio = (ipr_n >> Self::ipr_shift(&interrupt)) & 0x000000ff;
             prio as u8
         }