Source-Changes-HG archive

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

[src/netbsd-1-5]: src/sys/arch/sparc/sparc Pull up revision 1.139 (via patch, ...



details:   https://anonhg.NetBSD.org/src/rev/fb72b253a890
branches:  netbsd-1-5
changeset: 491302:fb72b253a890
user:      he <he%NetBSD.org@localhost>
date:      Sun Apr 22 17:59:57 2001 +0000

description:
Pull up revision 1.139 (via patch, requested by pk):
  In proc_trampoline() make the new process run at base interrupt
  priority level.  Especially important for kernel threads, which
  would otherwise keep running at splclock().

  Eliminates system clock instability.

diffstat:

 sys/arch/sparc/sparc/locore.s |  11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diffs (25 lines):

diff -r f0ee09e715fd -r fb72b253a890 sys/arch/sparc/sparc/locore.s
--- a/sys/arch/sparc/sparc/locore.s     Sun Apr 22 17:46:04 2001 +0000
+++ b/sys/arch/sparc/sparc/locore.s     Sun Apr 22 17:59:57 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: locore.s,v 1.132.2.1 2000/07/26 22:46:37 pk Exp $      */
+/*     $NetBSD: locore.s,v 1.132.2.2 2001/04/22 17:59:57 he Exp $      */
 
 /*
  * Copyright (c) 1996 Paul Kranenburg
@@ -4866,6 +4866,15 @@
  * and when returning a child to user mode after a fork(2).
  */
 ENTRY(proc_trampoline)
+
+       /* Reset interrupt level */
+       rd      %psr, %o0
+       andn    %o0, PSR_PIL, %o0       ! psr &= ~PSR_PIL;
+       wr      %o0, 0, %psr            ! (void) spl0();
+        nop                            ! psr delay; the next 2 instructions
+                                       ! can safely be made part of the
+                                       ! required 3 instructions psr delay
+
        call    %l0                     ! re-use current frame
         mov    %l1, %o0
 



Home | Main Index | Thread Index | Old Index