diff --git a/arch/xtensa/include/irq.h b/arch/xtensa/include/irq.h index 9f20eb349f6..d4622a8ed9a 100644 --- a/arch/xtensa/include/irq.h +++ b/arch/xtensa/include/irq.h @@ -203,7 +203,11 @@ static inline void xtensa_setps(uint32_t ps) { __asm__ __volatile__ ( - "wsr %0, PS" : : "r"(ps) + "wsr %0, PS \n" + "rsync \n" + : + : "r"(ps) + : "memory" ); } @@ -213,7 +217,11 @@ static inline void up_irq_restore(uint32_t ps) { __asm__ __volatile__ ( - "wsr %0, PS" : : "r"(ps) + "wsr %0, PS \n" + "rsync \n" + : + : "r"(ps) + : "memory" ); }