From 2be8be074764f292822ddf022cc81a5d441ad28d Mon Sep 17 00:00:00 2001 From: clubby789 Date: Sun, 20 Jul 2025 18:45:48 +0100 Subject: [PATCH] Use `unsafe` block in IRQ handlers --- embassy-imxrt/src/lib.rs | 8 +++++--- embassy-mspm0/src/lib.rs | 10 ++++++---- embassy-nrf/src/lib.rs | 10 ++++++---- embassy-rp/src/lib.rs | 10 ++++++---- embassy-stm32/src/lib.rs | 10 ++++++---- 5 files changed, 29 insertions(+), 19 deletions(-) diff --git a/embassy-imxrt/src/lib.rs b/embassy-imxrt/src/lib.rs index 5846afe5c..a3437c655 100644 --- a/embassy-imxrt/src/lib.rs +++ b/embassy-imxrt/src/lib.rs @@ -76,9 +76,11 @@ macro_rules! bind_interrupts { #[allow(non_snake_case)] #[no_mangle] unsafe extern "C" fn $irq() { - $( - <$handler as $crate::interrupt::typelevel::Handler<$crate::interrupt::typelevel::$irq>>::on_interrupt(); - )* + unsafe { + $( + <$handler as $crate::interrupt::typelevel::Handler<$crate::interrupt::typelevel::$irq>>::on_interrupt(); + )* + } } $( diff --git a/embassy-mspm0/src/lib.rs b/embassy-mspm0/src/lib.rs index bb8d91403..629ebfa1f 100644 --- a/embassy-mspm0/src/lib.rs +++ b/embassy-mspm0/src/lib.rs @@ -111,11 +111,13 @@ macro_rules! bind_interrupts { #[no_mangle] $(#[cfg($cond_irq)])? unsafe extern "C" fn $irq() { - $( - $(#[cfg($cond_handler)])? - <$handler as $crate::interrupt::typelevel::Handler<$crate::interrupt::typelevel::$irq>>::on_interrupt(); + unsafe { + $( + $(#[cfg($cond_handler)])? + <$handler as $crate::interrupt::typelevel::Handler<$crate::interrupt::typelevel::$irq>>::on_interrupt(); - )* + )* + } } $(#[cfg($cond_irq)])? diff --git a/embassy-nrf/src/lib.rs b/embassy-nrf/src/lib.rs index 44990ed85..caa274ff5 100644 --- a/embassy-nrf/src/lib.rs +++ b/embassy-nrf/src/lib.rs @@ -240,11 +240,13 @@ macro_rules! bind_interrupts { #[no_mangle] $(#[cfg($cond_irq)])? unsafe extern "C" fn $irq() { - $( - $(#[cfg($cond_handler)])? - <$handler as $crate::interrupt::typelevel::Handler<$crate::interrupt::typelevel::$irq>>::on_interrupt(); + unsafe { + $( + $(#[cfg($cond_handler)])? + <$handler as $crate::interrupt::typelevel::Handler<$crate::interrupt::typelevel::$irq>>::on_interrupt(); - )* + )* + } } $(#[cfg($cond_irq)])? diff --git a/embassy-rp/src/lib.rs b/embassy-rp/src/lib.rs index f3c5a35bb..9c450b6dc 100644 --- a/embassy-rp/src/lib.rs +++ b/embassy-rp/src/lib.rs @@ -189,11 +189,13 @@ macro_rules! bind_interrupts { #[no_mangle] $(#[cfg($cond_irq)])? unsafe extern "C" fn $irq() { - $( - $(#[cfg($cond_handler)])? - <$handler as $crate::interrupt::typelevel::Handler<$crate::interrupt::typelevel::$irq>>::on_interrupt(); + unsafe { + $( + $(#[cfg($cond_handler)])? + <$handler as $crate::interrupt::typelevel::Handler<$crate::interrupt::typelevel::$irq>>::on_interrupt(); - )* + )* + } } $(#[cfg($cond_irq)])? diff --git a/embassy-stm32/src/lib.rs b/embassy-stm32/src/lib.rs index 06c91ef97..46661008f 100644 --- a/embassy-stm32/src/lib.rs +++ b/embassy-stm32/src/lib.rs @@ -196,11 +196,13 @@ macro_rules! bind_interrupts { $(#[cfg($cond_irq)])? $(#[doc = $doc])* unsafe extern "C" fn $irq() { - $( - $(#[cfg($cond_handler)])? - <$handler as $crate::interrupt::typelevel::Handler<$crate::interrupt::typelevel::$irq>>::on_interrupt(); + unsafe { + $( + $(#[cfg($cond_handler)])? + <$handler as $crate::interrupt::typelevel::Handler<$crate::interrupt::typelevel::$irq>>::on_interrupt(); - )* + )* + } } $(#[cfg($cond_irq)])?