Module Name:    src
Committed By:   chs
Date:           Wed Jul  7 01:23:08 UTC 2010

Modified Files:
        src/sys/arch/m68k/m68k: switch_subr.s
        src/sys/arch/sun3/sun3: genassym.cf
        src/sys/arch/sun3/sun3x: genassym.cf

Log Message:
enable usermode RAS for sun[23] also.


To generate a diff of this commit:
cvs rdiff -u -r1.24 -r1.25 src/sys/arch/m68k/m68k/switch_subr.s
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/sun3/sun3/genassym.cf
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/sun3/sun3x/genassym.cf

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/m68k/m68k/switch_subr.s
diff -u src/sys/arch/m68k/m68k/switch_subr.s:1.24 src/sys/arch/m68k/m68k/switch_subr.s:1.25
--- src/sys/arch/m68k/m68k/switch_subr.s:1.24	Sun Jun  6 04:50:07 2010
+++ src/sys/arch/m68k/m68k/switch_subr.s	Wed Jul  7 01:23:08 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: switch_subr.s,v 1.24 2010/06/06 04:50:07 mrg Exp $	*/
+/*	$NetBSD: switch_subr.s,v 1.25 2010/07/07 01:23:08 chs Exp $	*/
 
 /*
  * Copyright (c) 2001 The NetBSD Foundation.
@@ -191,6 +191,7 @@
 	tstl	%a2			| vm == VM_MAP_NULL?
 	jeq	Lcpu_switch_badsw	| panic
 #endif
+	pea	%a0@			| save newlwp
 #if !defined(_SUN3X_) || defined(PMAP_DEBUG)
 	movl	%a2@(VM_PMAP),%...@-	| push vm->vm_map.pmap
 	jbsr	_C_LABEL(_pmap_switch)	| _pmap_switch(pmap)
@@ -220,6 +221,9 @@
 	 */
 	pea	%a0@			| push newlwp
 	jbsr	_C_LABEL(pmap_activate)	| pmap_activate(newlwp)
+	/* Note that newlwp will be popped off the stack later. */
+#endif
+
 	/*
 	 *  Check for restartable atomic sequences (RAS)
 	 */
@@ -237,11 +241,10 @@
 	jeq	1f
 	movl	_C_LABEL(curlwp),%a1
 	movl	%a1@(L_MD_REGS),%a1
-	movel	%a0,%a1@(TF_PC)
+	movl	%a0,%a1@(TF_PC)
 1:
 	movl	%...@+,%d0		| restore newlwp
 	movl	_C_LABEL(curpcb),%a1	| restore pcb
-#endif
 
 	movl	%sp@(4),%d1		| restore oldlwp for a return value
 	lea     _ASM_LABEL(tmpstk),%sp	| now goto a tmp stack for NMI
@@ -410,5 +413,3 @@
 	moveml	%...@+,#0x7FFF		| restore most user regs
 	addql	#8,%sp			| toss SP and stack adjust
 	jra	_ASM_LABEL(rei)		| and return
-
-

Index: src/sys/arch/sun3/sun3/genassym.cf
diff -u src/sys/arch/sun3/sun3/genassym.cf:1.12 src/sys/arch/sun3/sun3/genassym.cf:1.13
--- src/sys/arch/sun3/sun3/genassym.cf:1.12	Thu Dec 10 05:10:04 2009
+++ src/sys/arch/sun3/sun3/genassym.cf	Wed Jul  7 01:23:08 2010
@@ -1,4 +1,4 @@
-#	$NetBSD: genassym.cf,v 1.12 2009/12/10 05:10:04 rmind Exp $
+#	$NetBSD: genassym.cf,v 1.13 2010/07/07 01:23:08 chs Exp $
 
 #
 # Copyright (c) 1982, 1990, 1993
@@ -162,6 +162,7 @@
 define	L_MD_REGS		offsetof(struct lwp, l_md.md_regs)
 define	L_MD_FLAGS		offsetof(struct lwp, l_md.md_flags)
 define	P_FLAG			offsetof(struct proc, p_flag)
+define	P_RASLIST		offsetof(struct proc, p_raslist)
 define	P_VMSPACE		offsetof(struct proc, p_vmspace)
 
 # lwp fields and values
@@ -187,6 +188,9 @@
 define	PCB_FPCTX		offsetof(struct pcb, pcb_fpregs)
 define	SIZEOF_PCB		sizeof(struct pcb)
 
+# frame offsets
+define 	TF_PC			offsetof(struct frame, f_pc)
+
 # exception frame offset/sizes
 define	FR_SP			offsetof(struct trapframe, tf_regs[15])
 define	FR_ADJ			offsetof(struct trapframe, tf_stackadj)

Index: src/sys/arch/sun3/sun3x/genassym.cf
diff -u src/sys/arch/sun3/sun3x/genassym.cf:1.11 src/sys/arch/sun3/sun3x/genassym.cf:1.12
--- src/sys/arch/sun3/sun3x/genassym.cf:1.11	Thu Dec 10 05:10:04 2009
+++ src/sys/arch/sun3/sun3x/genassym.cf	Wed Jul  7 01:23:08 2010
@@ -1,4 +1,4 @@
-#	$NetBSD: genassym.cf,v 1.11 2009/12/10 05:10:04 rmind Exp $
+#	$NetBSD: genassym.cf,v 1.12 2010/07/07 01:23:08 chs Exp $
 
 #
 # Copyright (c) 1982, 1990, 1993
@@ -153,6 +153,7 @@
 define	L_MD_REGS		offsetof(struct lwp, l_md.md_regs)
 define	L_MD_FLAGS		offsetof(struct lwp, l_md.md_flags)
 define	P_FLAG			offsetof(struct proc, p_flag)
+define	P_RASLIST		offsetof(struct proc, p_raslist)
 define	P_VMSPACE		offsetof(struct proc, p_vmspace)
 
 # lwp fields and values
@@ -177,6 +178,9 @@
 define	PCB_FPCTX		offsetof(struct pcb, pcb_fpregs)
 define	SIZEOF_PCB		sizeof(struct pcb)
 
+# frame offsets
+define 	TF_PC			offsetof(struct frame, f_pc)
+
 # exception frame offset/sizes
 define	FR_SP			offsetof(struct trapframe, tf_regs[15])
 define	FR_ADJ			offsetof(struct trapframe, tf_stackadj)

Reply via email to