summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/include/intr.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/powerpc/include/intr.h')
-rw-r--r--sys/powerpc/include/intr.h13
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
OpenPOWER on IntegriCloud