diff options
Diffstat (limited to 'sys/powerpc/include/intr.h')
-rw-r--r-- | sys/powerpc/include/intr.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/sys/powerpc/include/intr.h b/sys/powerpc/include/intr.h index dac84ec..a723bd4 100644 --- a/sys/powerpc/include/intr.h +++ b/sys/powerpc/include/intr.h @@ -93,15 +93,16 @@ extern int imask[]; /* Following code should be implemented with lwarx/stwcx to avoid * the disable/enable. i need to read the manual once more.... */ static __inline void -softintr(ipl) - int ipl; +softintr(int ipl) { - int msrsave; + unsigned int msrsave; + + msrsave = mfmsr(); + mtmsr(msrsave & ~PSL_EE); - __asm__ volatile("mfmsr %0" : "=r"(msrsave)); - __asm__ volatile("mtmsr %0" :: "r"(msrsave & ~PSL_EE)); ipending |= 1 << ipl; - __asm__ volatile("mtmsr %0" :: "r"(msrsave)); + + mtmsr(msrsave); } #define ICU_LEN 64 |