summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2006-08-02 18:37:44 +0000
committerrwatson <rwatson@FreeBSD.org>2006-08-02 18:37:44 +0000
commit774fbf773647291ff95c92284f46c14766a97e89 (patch)
tree65c21b0a8af84bf3478b0decf22b8d780e51c936
parent2d4a8e480d5d2e97e89205efce6273493e7d289c (diff)
downloadFreeBSD-src-774fbf773647291ff95c92284f46c14766a97e89.zip
FreeBSD-src-774fbf773647291ff95c92284f46c14766a97e89.tar.gz
Move destroying kqueue state from above pru_detach to below it in
sofree(), as a number of protocols expect to be able to call soisdisconnected() during detach. That may not be a good assumption, but until I'm sure if it's a good assumption or not, allow it.
-rw-r--r--sys/kern/uipc_socket.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c
index 41b9baa..882ecfd 100644
--- a/sys/kern/uipc_socket.c
+++ b/sys/kern/uipc_socket.c
@@ -608,10 +608,10 @@ sofree(so)
if (pr->pr_flags & PR_RIGHTS && pr->pr_domain->dom_dispose != NULL)
(*pr->pr_domain->dom_dispose)(so->so_rcv.sb_mb);
sbdestroy(&so->so_rcv, so);
- knlist_destroy(&so->so_rcv.sb_sel.si_note);
- knlist_destroy(&so->so_snd.sb_sel.si_note);
if (pr->pr_usrreqs->pru_detach != NULL)
(*pr->pr_usrreqs->pru_detach)(so);
+ knlist_destroy(&so->so_rcv.sb_sel.si_note);
+ knlist_destroy(&so->so_snd.sb_sel.si_note);
sodealloc(so);
}
OpenPOWER on IntegriCloud