Source-Changes-HG archive

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

[src/trunk]: src/sys/arch Fix incorrect kernelmode check in INTRENTRY macro.



details:   https://anonhg.NetBSD.org/src/rev/8f54a0c78674
branches:  trunk
changeset: 516652:8f54a0c78674
user:      msaitoh <msaitoh%NetBSD.org@localhost>
date:      Sat Oct 27 03:46:19 2001 +0000

description:
Fix incorrect kernelmode check in INTRENTRY macro.
Broken INTRENTRY causes CPU reset when sigaltstack is used.

diffstat:

 sys/arch/dreamcast/dreamcast/locore.s |  9 +++------
 sys/arch/evbsh3/evbsh3/locore.s       |  9 +++------
 sys/arch/hpcsh/hpcsh/locore.s         |  9 +++------
 sys/arch/mmeye/mmeye/locore.s         |  9 +++------
 4 files changed, 12 insertions(+), 24 deletions(-)

diffs (112 lines):

diff -r 88ac9d9d2edf -r 8f54a0c78674 sys/arch/dreamcast/dreamcast/locore.s
--- a/sys/arch/dreamcast/dreamcast/locore.s     Sat Oct 27 01:57:40 2001 +0000
+++ b/sys/arch/dreamcast/dreamcast/locore.s     Sat Oct 27 03:46:19 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: locore.s,v 1.9 2001/08/10 18:27:12 msaitoh Exp $       */
+/*     $NetBSD: locore.s,v 1.10 2001/10/27 03:46:19 msaitoh Exp $      */
 
 /*-
  * Copyright (c) 1993, 1994, 1995, 1997
@@ -85,16 +85,13 @@
        ldc     r8, r0_bank     ; \
        ldc     r9, r1_bank     ; \
        ldc     r10, r3_bank    ; \
-       mov     r15, r8         ; /* Check if kernel stack is already used */ \
-       mov     #0x3, r9        ; \
        mov     #30, r10        ; \
-       shld    r10, r9         ; /* r9 = 0xc0000000 */ \
-       and     r9, r8          ; \
        mov     #2, r9          ; \
        shld    r10, r9         ; /* r9 = 0x80000000 */ \
        and     r15, r9         ; \
+       xor     r8, r8          ; \
        cmp/eq  r8, r9          ; \
-       bt      1f              ; /* If already kernel mode then jump */ \
+       bf      1f              ; /* If already kernel mode then jump */ \
        ldc     r15, r2_bank    ; \
        mov.l   3f, r8          ; /* 3f = Kernel Stack */ \
        mov.l   @r8, r15        ; /* Change to Kernel Stack */ \
diff -r 88ac9d9d2edf -r 8f54a0c78674 sys/arch/evbsh3/evbsh3/locore.s
--- a/sys/arch/evbsh3/evbsh3/locore.s   Sat Oct 27 01:57:40 2001 +0000
+++ b/sys/arch/evbsh3/evbsh3/locore.s   Sat Oct 27 03:46:19 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: locore.s,v 1.33 2001/08/10 18:27:12 msaitoh Exp $      */
+/*     $NetBSD: locore.s,v 1.34 2001/10/27 03:46:20 msaitoh Exp $      */
 
 /*-
  * Copyright (c) 1993, 1994, 1995, 1997
@@ -86,16 +86,13 @@
        ldc     r8, r0_bank     ; \
        ldc     r9, r1_bank     ; \
        ldc     r10, r3_bank    ; \
-       mov     r15, r8         ; /* Check if kernel stack is already used */ \
-       mov     #0x3, r9        ; \
        mov     #30, r10        ; \
-       shld    r10, r9         ; /* r9 = 0xc0000000 */ \
-       and     r9, r8          ; \
        mov     #2, r9          ; \
        shld    r10, r9         ; /* r9 = 0x80000000 */ \
        and     r15, r9         ; \
+       xor     r8, r8          ; \
        cmp/eq  r8, r9          ; \
-       bt      1f              ; /* If already kernel mode then jump */ \
+       bf      1f              ; /* If already kernel mode then jump */ \
        ldc     r15, r2_bank    ; \
        mov.l   3f, r8          ; /* 3f = Kernel Stack */ \
        mov.l   @r8, r15        ; /* Change to Kernel Stack */ \
diff -r 88ac9d9d2edf -r 8f54a0c78674 sys/arch/hpcsh/hpcsh/locore.s
--- a/sys/arch/hpcsh/hpcsh/locore.s     Sat Oct 27 01:57:40 2001 +0000
+++ b/sys/arch/hpcsh/hpcsh/locore.s     Sat Oct 27 03:46:19 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: locore.s,v 1.9 2001/08/10 18:27:13 msaitoh Exp $       */
+/*     $NetBSD: locore.s,v 1.10 2001/10/27 03:46:20 msaitoh Exp $      */
 
 /*-
  * Copyright (c) 1993, 1994, 1995, 1997
@@ -84,16 +84,13 @@
        ldc     r8, r0_bank     ; \
        ldc     r9, r1_bank     ; \
        ldc     r10, r3_bank    ; \
-       mov     r15, r8         ; /* Check if kernel stack is already used */ \
-       mov     #0x3, r9        ; \
        mov     #30, r10        ; \
-       shld    r10, r9         ; /* r9 = 0xc0000000 */ \
-       and     r9, r8          ; \
        mov     #2, r9          ; \
        shld    r10, r9         ; /* r9 = 0x80000000 */ \
        and     r15, r9         ; \
+       xor     r8, r8          ; \
        cmp/eq  r8, r9          ; \
-       bt      1f              ; /* If already kernel mode then jump */ \
+       bf      1f              ; /* If already kernel mode then jump */ \
        ldc     r15, r2_bank    ; \
        mov.l   3f, r8          ; /* 3f = Kernel Stack */ \
        mov.l   @r8, r15        ; /* Change to Kernel Stack */ \
diff -r 88ac9d9d2edf -r 8f54a0c78674 sys/arch/mmeye/mmeye/locore.s
--- a/sys/arch/mmeye/mmeye/locore.s     Sat Oct 27 01:57:40 2001 +0000
+++ b/sys/arch/mmeye/mmeye/locore.s     Sat Oct 27 03:46:19 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: locore.s,v 1.22 2001/08/10 18:27:13 msaitoh Exp $      */
+/*     $NetBSD: locore.s,v 1.23 2001/10/27 03:46:20 msaitoh Exp $      */
 
 /*-
  * Copyright (c) 1993, 1994, 1995, 1997
@@ -77,16 +77,13 @@
        ldc     r8, r0_bank     ; \
        ldc     r9, r1_bank     ; \
        ldc     r10, r3_bank    ; \
-       mov     r15, r8         ; /* Check if kernel stack is already used */ \
-       mov     #0x3, r9        ; \
        mov     #30, r10        ; \
-       shld    r10, r9         ; /* r9 = 0xc0000000 */ \
-       and     r9, r8          ; \
        mov     #2, r9          ; \
        shld    r10, r9         ; /* r9 = 0x80000000 */ \
        and     r15, r9         ; \
+       xor     r8, r8          ; \
        cmp/eq  r8, r9          ; \
-       bt      1f              ; /* If already kernel mode then jump */ \
+       bf      1f              ; /* If already kernel mode then jump */ \
        ldc     r15, r2_bank    ; \
        mov.l   3f, r8          ; /* 3f = Kernel Stack */ \
        mov.l   @r8, r15        ; /* Change to Kernel Stack */ \



Home | Main Index | Thread Index | Old Index