diff options
author | dwmalone <dwmalone@FreeBSD.org> | 2000-10-08 09:52:50 +0000 |
---|---|---|
committer | dwmalone <dwmalone@FreeBSD.org> | 2000-10-08 09:52:50 +0000 |
commit | d5264134474d441cb1bae45ac8a328d07fbd747b (patch) | |
tree | c7e5983f50103a34ba59349e5e6d0eb0c061d2a1 /sys | |
parent | de2abcbc972970b14e7e77b8bc8f6696d560ec34 (diff) | |
download | FreeBSD-src-d5264134474d441cb1bae45ac8a328d07fbd747b.zip FreeBSD-src-d5264134474d441cb1bae45ac8a328d07fbd747b.tar.gz |
KASSERT that mbuf external reference counts are > 0 before we remove
a reference. (Agreed to by Bosko some time ago).
Diffstat (limited to 'sys')
-rw-r--r-- | sys/sys/mbuf.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/sys/mbuf.h b/sys/sys/mbuf.h index 2d49f1b..d59ab54 100644 --- a/sys/sys/mbuf.h +++ b/sys/sys/mbuf.h @@ -283,7 +283,10 @@ struct mcntfree_lst { */ #define MEXT_IS_REF(m) ((m)->m_ext.ref_cnt->refcnt > 1) -#define MEXT_REM_REF(m) atomic_subtract_long(&((m)->m_ext.ref_cnt->refcnt), 1) +#define MEXT_REM_REF(m) do { \ + KASSERT((m)->m_ext.ref_cnt->refcnt > 0, ("m_ext refcnt < 0")); \ + atomic_subtract_long(&((m)->m_ext.ref_cnt->refcnt), 1); \ + } while(0) #define MEXT_ADD_REF(m) atomic_add_long(&((m)->m_ext.ref_cnt->refcnt), 1) |