summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/kern/sys_generic.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c
index 50bc91d..5e12b1d 100644
--- a/sys/kern/sys_generic.c
+++ b/sys/kern/sys_generic.c
@@ -1600,10 +1600,11 @@ static void
selfdfree(struct seltd *stp, struct selfd *sfp)
{
STAILQ_REMOVE(&stp->st_selq, sfp, selfd, sf_link);
- mtx_lock(sfp->sf_mtx);
- if (sfp->sf_si)
+ if (sfp->sf_si != NULL) {
+ mtx_lock(sfp->sf_mtx);
TAILQ_REMOVE(&sfp->sf_si->si_tdlist, sfp, sf_threads);
- mtx_unlock(sfp->sf_mtx);
+ mtx_unlock(sfp->sf_mtx);
+ }
uma_zfree(selfd_zone, sfp);
}
OpenPOWER on IntegriCloud