diff --git a/sys/netpfil/ipfw/dn_aqm_pie.c b/sys/netpfil/ipfw/dn_aqm_pie.c --- a/sys/netpfil/ipfw/dn_aqm_pie.c +++ b/sys/netpfil/ipfw/dn_aqm_pie.c @@ -592,7 +592,7 @@ pst = q->aqm_status; /* increase reference count for PIE module */ - pie_desc.ref_count++; + atomic_add_int(&pie_desc.ref_count, 1); pst->pq = q; pst->parms = pprms; @@ -626,9 +626,7 @@ mtx_unlock(&pst->lock_mtx); mtx_destroy(&pst->lock_mtx); free(x, M_DUMMYNET); - DN_BH_WLOCK(); - pie_desc.ref_count--; - DN_BH_WUNLOCK(); + atomic_subtract_int(&pie_desc.ref_count, 1); } /*