enable usermode RAS for sun[23] also.
This commit is contained in:
parent
00c0212959
commit
7ddf89ffa3
|
@ -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 @@ Lcpu_switch_noctxsave:
|
|||
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),%sp@- | push vm->vm_map.pmap
|
||||
jbsr _C_LABEL(_pmap_switch) | _pmap_switch(pmap)
|
||||
|
@ -220,6 +221,9 @@ Lsame_mmuctx:
|
|||
*/
|
||||
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 @@ Lsame_mmuctx:
|
|||
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 %sp@+,%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 @@ ENTRY_NOPROFILE(setfunc_trampoline)
|
|||
moveml %sp@+,#0x7FFF | restore most user regs
|
||||
addql #8,%sp | toss SP and stack adjust
|
||||
jra _ASM_LABEL(rei) | and return
|
||||
|
||||
|
||||
|
|
|
@ -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_PROC offsetof(struct lwp, l_proc)
|
|||
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_ONFAULT offsetof(struct pcb, pcb_onfault)
|
|||
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)
|
||||
|
|
|
@ -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_PROC offsetof(struct lwp, l_proc)
|
|||
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_ONFAULT offsetof(struct pcb, pcb_onfault)
|
|||
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)
|
||||
|
|
Loading…
Reference in New Issue