From d7574c74326aebc9eaaf20ced7c7a53c6db5f685 Mon Sep 17 00:00:00 2001 From: Gleb Smirnoff Date: Mon, 29 Aug 2022 19:15:01 -0700 Subject: [PATCH] domains: init pr_domain in pr_init() --- sys/kern/uipc_domain.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/sys/kern/uipc_domain.c b/sys/kern/uipc_domain.c index 3c0a570842b0..334a7a036daa 100644 --- a/sys/kern/uipc_domain.c +++ b/sys/kern/uipc_domain.c @@ -208,12 +208,14 @@ pr_sopoll_notsupp(struct socket *so, int events, struct ucred *cred, } static void -pr_init(struct protosw *pr) +pr_init(struct domain *dom, struct protosw *pr) { KASSERT(pr->pr_attach != NULL, ("%s: protocol doesn't have pr_attach", __func__)); + pr->pr_domain = dom; + #define DEFAULT(foo, bar) if (pr->foo == NULL) pr->foo = bar DEFAULT(pr_sosend, sosend_generic); DEFAULT(pr_soreceive, soreceive_generic); @@ -261,10 +263,8 @@ domain_init(struct domain *dp) MPASS((flags & DOMF_INITED) == 0); for (int i = 0; i < dp->dom_nprotosw; i++) - if ((pr = dp->dom_protosw[i]) != NULL) { - pr->pr_domain = dp; - pr_init(pr); - } + if ((pr = dp->dom_protosw[i]) != NULL) + pr_init(dp, pr); atomic_set_rel_int(&dp->dom_flags, DOMF_INITED); } @@ -439,8 +439,7 @@ protosw_register(struct domain *dp, struct protosw *npr) return (ENOMEM); } - npr->pr_domain = dp; - pr_init(npr); + pr_init(dp, npr); *prp = npr; mtx_unlock(&dom_mtx);