Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/macppc/macppc Back out part of revision 1.46. Do n...



details:   https://anonhg.NetBSD.org/src/rev/3d31ac1214df
branches:  trunk
changeset: 573164:3d31ac1214df
user:      briggs <briggs%NetBSD.org@localhost>
date:      Fri Jan 21 03:22:13 2005 +0000

description:
Back out part of revision 1.46.  Do not use atomic_setbits_ulong() for
softintr().  Need to figure out why this causes problems.  Thanks to
Izumi Tsutsui for isolating this change.

diffstat:

 sys/arch/macppc/macppc/extintr.c |  11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diffs (33 lines):

diff -r c97dd528f9e0 -r 3d31ac1214df sys/arch/macppc/macppc/extintr.c
--- a/sys/arch/macppc/macppc/extintr.c  Fri Jan 21 02:43:33 2005 +0000
+++ b/sys/arch/macppc/macppc/extintr.c  Fri Jan 21 03:22:13 2005 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: extintr.c,v 1.49 2005/01/18 15:20:23 briggs Exp $      */
+/*     $NetBSD: extintr.c,v 1.50 2005/01/21 03:22:13 briggs Exp $      */
 
 /*-
  * Copyright (c) 2000, 2001 Tsubai Masanari.
@@ -74,7 +74,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: extintr.c,v 1.49 2005/01/18 15:20:23 briggs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: extintr.c,v 1.50 2005/01/21 03:22:13 briggs Exp $");
 
 #include "opt_multiprocessor.h"
 
@@ -961,9 +961,12 @@
 softintr(ipl)
        int ipl;
 {
+       int msrsave;
 
-       atomic_setbits_ulong((volatile unsigned long *) &curcpu()->ci_ipending,
-                            1 << ipl);
+       msrsave = mfmsr();
+       mtmsr(msrsave & ~PSL_EE);
+       curcpu()->ci_ipending |= 1 << ipl;
+       mtmsr(msrsave);
 }
 
 void



Home | Main Index | Thread Index | Old Index