diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2004-06-28 02:00:21 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2004-06-28 02:00:21 +0000 |
commit | 8009b38d960c8a938b3dce37a497f81efac1d208 (patch) | |
tree | 52f2b66323e938a7648ab495e9a2dd34f923dee2 /sys | |
parent | 760935674b4c54f743c3d357264d07fdd56cfbaf (diff) |
move from unsafe ev_count32 to safe ev_count; aaron ok
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/i386/i386/apicvec.s | 8 | ||||
-rw-r--r-- | sys/arch/i386/i386/genassym.cf | 4 | ||||
-rw-r--r-- | sys/arch/i386/i386/lapic.c | 4 | ||||
-rw-r--r-- | sys/arch/i386/i386/vector.s | 5 |
4 files changed, 13 insertions, 8 deletions
diff --git a/sys/arch/i386/i386/apicvec.s b/sys/arch/i386/i386/apicvec.s index c2fadf429be..4ab84c31def 100644 --- a/sys/arch/i386/i386/apicvec.s +++ b/sys/arch/i386/i386/apicvec.s @@ -1,4 +1,4 @@ -/* $OpenBSD: apicvec.s,v 1.2 2004/06/13 21:49:15 niklas Exp $ */ +/* $OpenBSD: apicvec.s,v 1.3 2004/06/28 02:00:20 deraadt Exp $ */ /* $NetBSD: apicvec.s,v 1.1.2.2 2000/02/21 21:54:01 sommerfeld Exp $ */ /*- @@ -199,8 +199,12 @@ _C_LABEL(Xintr_/**/name/**/num): \ pushl %eax ;\ call *IH_FUN(%ebx) /* call it */ ;\ addl $4,%esp /* toss the arg */ ;\ + orl %eax,%eax /* should it be counted? */ ;\ + jz 4f ;\ + addl $1,IH_COUNT(%ebx) /* count the intrs */ ;\ + adcl $0,IH_COUNT+4(%ebx) ;\ +4: \ UNLOCK_KERNEL ;\ - incl IH_COUNT(%ebx) /* count the intrs */ ;\ movl IH_NEXT(%ebx),%ebx /* next handler in chain */ ;\ testl %ebx,%ebx ;\ jnz 7b ;\ diff --git a/sys/arch/i386/i386/genassym.cf b/sys/arch/i386/i386/genassym.cf index e59ee379c90..c29811bf5e1 100644 --- a/sys/arch/i386/i386/genassym.cf +++ b/sys/arch/i386/i386/genassym.cf @@ -1,4 +1,4 @@ -# $OpenBSD: genassym.cf,v 1.15 2004/06/28 01:41:52 aaron Exp $ +# $OpenBSD: genassym.cf,v 1.16 2004/06/28 02:00:20 deraadt Exp $ # # Copyright (c) 1982, 1990 The Regents of the University of California. # All rights reserved. @@ -172,7 +172,7 @@ if NISA > 0 struct intrhand member ih_fun member ih_arg -member IH_COUNT ih_count.ec_count32 +member IH_COUNT ih_count.ec_count member ih_next endif diff --git a/sys/arch/i386/i386/lapic.c b/sys/arch/i386/i386/lapic.c index bc58300a73b..99e9ad57bdf 100644 --- a/sys/arch/i386/i386/lapic.c +++ b/sys/arch/i386/i386/lapic.c @@ -1,4 +1,4 @@ -/* $OpenBSD: lapic.c,v 1.4 2004/06/28 01:41:53 aaron Exp $ */ +/* $OpenBSD: lapic.c,v 1.5 2004/06/28 02:00:20 deraadt Exp $ */ /* $NetBSD: lapic.c,v 1.1.2.8 2000/02/23 06:10:50 sommerfeld Exp $ */ /*- @@ -204,7 +204,7 @@ lapic_clockintr(arg) hardclock(frame); - clk_count.ec_count32++; + clk_count.ec_count++; } void diff --git a/sys/arch/i386/i386/vector.s b/sys/arch/i386/i386/vector.s index 71e48ecd589..0c46cea7fd4 100644 --- a/sys/arch/i386/i386/vector.s +++ b/sys/arch/i386/i386/vector.s @@ -1,4 +1,4 @@ -/* $OpenBSD: vector.s,v 1.3 2004/06/20 16:30:51 aaron Exp $ */ +/* $OpenBSD: vector.s,v 1.4 2004/06/28 02:00:20 deraadt Exp $ */ /* $NetBSD: vector.s,v 1.32 1996/01/07 21:29:47 mycroft Exp $ */ /* @@ -124,7 +124,8 @@ Xresume_/**/name/**/num/**/: ;\ STRAY_INTEGRATE /* maybe he claimed it */ ;\ orl %eax,%eax /* should it be counted? */ ;\ jz 5f /* no, skip it */ ;\ - incl IH_COUNT(%ebx) /* count the intrs */ ;\ + addl $1,IH_COUNT(%ebx) /* count the intrs */ ;\ + adcl $0,IH_COUNT+4(%ebx) ;\ 5: movl IH_NEXT(%ebx),%ebx /* next handler in chain */ ;\ testl %ebx,%ebx ;\ jnz 7b ;\ |