diff --git a/sys/sys/mbuf.h b/sys/sys/mbuf.h index 2d49f1b2c42c..d59ab541796e 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)