fix a ldtlb handling bug:
- set to PTE{H,L,A} and call LDTLB must do atomically. - never call LDTLB when it's unnecessary. Broken kernel oocasionally causes cpu reset when /etc/security is called. Now fix this problem.
This commit is contained in:
parent
b5560b60b9
commit
0756145b0f
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: locore.s,v 1.8 2001/05/15 08:54:57 msaitoh Exp $ */
|
||||
/* $NetBSD: locore.s,v 1.9 2001/08/10 18:27:12 msaitoh Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1993, 1994, 1995, 1997
|
||||
|
@ -1335,7 +1335,6 @@ XL_splimit_low3: .long 0x80000000
|
|||
nop
|
||||
add #4, r15 /* pop dummy code */
|
||||
EXCEPT_DISABLE
|
||||
ldtlb
|
||||
INTRFASTEXIT
|
||||
|
||||
.align 2
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: locore.s,v 1.32 2001/05/15 08:54:56 msaitoh Exp $ */
|
||||
/* $NetBSD: locore.s,v 1.33 2001/08/10 18:27:12 msaitoh Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1993, 1994, 1995, 1997
|
||||
|
@ -1336,7 +1336,6 @@ XL_splimit_low3: .long 0x80000000
|
|||
nop
|
||||
add #4, r15 /* pop dummy code */
|
||||
EXCEPT_DISABLE
|
||||
ldtlb
|
||||
INTRFASTEXIT
|
||||
|
||||
.align 2
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: locore.s,v 1.8 2001/05/15 08:54:57 msaitoh Exp $ */
|
||||
/* $NetBSD: locore.s,v 1.9 2001/08/10 18:27:13 msaitoh Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1993, 1994, 1995, 1997
|
||||
|
@ -1193,7 +1193,6 @@ XL_splimit_low3: .long 0x80000000
|
|||
nop
|
||||
add #4, r15 /* pop dummy code */
|
||||
EXCEPT_DISABLE
|
||||
ldtlb
|
||||
INTRFASTEXIT
|
||||
|
||||
.align 2
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: locore.s,v 1.21 2001/02/05 18:14:43 thorpej Exp $ */
|
||||
/* $NetBSD: locore.s,v 1.22 2001/08/10 18:27:13 msaitoh Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1993, 1994, 1995, 1997
|
||||
|
@ -1150,7 +1150,6 @@ XL_splimit_low3: .long 0x80000000
|
|||
nop
|
||||
add #4, r15 /* pop dummy code */
|
||||
EXCEPT_DISABLE
|
||||
ldtlb
|
||||
INTRFASTEXIT
|
||||
|
||||
.align 2
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: trap.c,v 1.27 2001/06/24 05:34:07 msaitoh Exp $ */
|
||||
/* $NetBSD: trap.c,v 1.28 2001/08/10 18:27:08 msaitoh Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1995 Charles M. Hannum. All rights reserved.
|
||||
|
@ -691,6 +691,7 @@ tlb_handler(p1, p2, p3, p4, frame)
|
|||
#else
|
||||
SHREG_PTEL = pte & PTEL_VALIDBITS;
|
||||
#endif
|
||||
__asm __volatile ("ldtlb; nop");
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -841,6 +842,7 @@ tlb_handler(p1, p2, p3, p4, frame)
|
|||
#endif
|
||||
}
|
||||
}
|
||||
__asm __volatile("ldtlb; nop");
|
||||
if (user)
|
||||
userret(p, frame.tf_spc, sticks);
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue