Index: sys/netpfil/ipfw/dn_aqm_pie.c =================================================================== --- sys/netpfil/ipfw/dn_aqm_pie.c +++ sys/netpfil/ipfw/dn_aqm_pie.c @@ -628,9 +628,8 @@ mtx_unlock(&pst->lock_mtx); mtx_destroy(&pst->lock_mtx); free(x, M_DUMMYNET); - DN_BH_WLOCK(); + pie_desc.ref_count--; - DN_BH_WUNLOCK(); } /* Index: sys/netpfil/ipfw/dn_sched_fq_pie.c =================================================================== --- sys/netpfil/ipfw/dn_sched_fq_pie.c +++ sys/netpfil/ipfw/dn_sched_fq_pie.c @@ -580,7 +580,6 @@ mtx_destroy(&pst->lock_mtx); psi_extra = q->psi_extra; - DN_BH_WLOCK(); psi_extra->nr_active_q--; /* when all sub-queues are destroyed, free flows fq_pie extra vars memory */ @@ -589,7 +588,6 @@ free(psi_extra, M_DUMMYNET); fq_pie_desc.ref_count--; } - DN_BH_WUNLOCK(); } /*