diff options
author | 2016-02-01 23:34:31 +0000 | |
---|---|---|
committer | 2016-02-01 23:34:31 +0000 | |
commit | 812d031b1b0293ac72b15038b7d04914360c6261 (patch) | |
tree | 1d2de823422a412db86d1ef86f2616b5d01231ec | |
parent | Remove A20 support in sxitimer, agtimer is now used instead. (diff) | |
download | wireguard-openbsd-812d031b1b0293ac72b15038b7d04914360c6261.tar.xz wireguard-openbsd-812d031b1b0293ac72b15038b7d04914360c6261.zip |
add a DIAGNOSTIC for refcnt_take overflow.
ok mpi@
-rw-r--r-- | sys/kern/kern_synch.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/kern/kern_synch.c b/sys/kern/kern_synch.c index 874399d7024..da949842d4b 100644 --- a/sys/kern/kern_synch.c +++ b/sys/kern/kern_synch.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kern_synch.c,v 1.127 2016/01/15 11:42:47 dlg Exp $ */ +/* $OpenBSD: kern_synch.c,v 1.128 2016/02/01 23:34:31 dlg Exp $ */ /* $NetBSD: kern_synch.c,v 1.37 1996/04/22 01:38:37 christos Exp $ */ /* @@ -607,7 +607,14 @@ refcnt_init(struct refcnt *r) void refcnt_take(struct refcnt *r) { +#ifdef DIAGNOSTIC + u_int refcnt; + + refcnt = atomic_inc_int_nv(&r->refs); + KASSERT(refcnt != 0); +#else atomic_inc_int(&r->refs); +#endif } int |