From a0daff56470ce2cb167f4f4442b0184ba41d355c Mon Sep 17 00:00:00 2001 From: pk Date: Mon, 9 Apr 2001 18:18:48 +0000 Subject: [PATCH] proc_trampoline(): mave the new process run at base interrupt priority level. This is especially important for in-kernel processes started from here, which would otherwise keep running at splclock(). --- sys/arch/sparc/sparc/locore.s | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sys/arch/sparc/sparc/locore.s b/sys/arch/sparc/sparc/locore.s index c7cab0a9562e..f91f8afab9bc 100644 --- a/sys/arch/sparc/sparc/locore.s +++ b/sys/arch/sparc/sparc/locore.s @@ -1,4 +1,4 @@ -/* $NetBSD: locore.s,v 1.138 2001/03/18 17:11:22 chs Exp $ */ +/* $NetBSD: locore.s,v 1.139 2001/04/09 18:18:48 pk Exp $ */ /* * Copyright (c) 1996 Paul Kranenburg @@ -4866,6 +4866,13 @@ ENTRY(proc_trampoline) nop #endif + /* 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 mov %l1, %o0