From 24e1c6ae7d3f7731a0884a62e9d5273e5ca1335a Mon Sep 17 00:00:00 2001 From: Gleb Smirnoff Date: Mon, 3 Jan 2022 10:15:22 -0800 Subject: [PATCH] domains: init with standard SYSINIT(9) or VNET_SYSINIT() There left only three modules that used dom_init(). And netipsec was the last one to use dom_destroy(). Differential revision: https://reviews.freebsd.org/D33540 --- share/man/man9/domain.9 | 2 -- sys/kern/uipc_debug.c | 1 - sys/kern/uipc_domain.c | 4 ---- sys/kern/uipc_usrreq.c | 10 ++-------- sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c | 4 ++-- sys/sys/domain.h | 4 ---- 6 files changed, 4 insertions(+), 21 deletions(-) diff --git a/share/man/man9/domain.9 b/share/man/man9/domain.9 index 867cfa104718..2fc0fd328392 100644 --- a/share/man/man9/domain.9 +++ b/share/man/man9/domain.9 @@ -69,8 +69,6 @@ struct domain { int dom_family; /* AF_xxx */ char *dom_name; int dom_flags; - void (*dom_init) /* initialize domain data structures */ - (void); int (*dom_probe)(void); /* check for support (optional) */ void (*dom_destroy) /* cleanup structures / state */ (void); diff --git a/sys/kern/uipc_debug.c b/sys/kern/uipc_debug.c index 86c3199a3c26..2f60bb64ed3b 100644 --- a/sys/kern/uipc_debug.c +++ b/sys/kern/uipc_debug.c @@ -251,7 +251,6 @@ db_print_domain(struct domain *d, const char *domain_name, int indent) db_printf("dom_name: %s\n", d->dom_name); db_print_indent(indent); - db_printf("dom_init: %p ", d->dom_init); db_printf("dom_externalize: %p ", d->dom_externalize); db_printf("dom_dispose: %p\n", d->dom_dispose); diff --git a/sys/kern/uipc_domain.c b/sys/kern/uipc_domain.c index da21ed29a716..832db9f6e667 100644 --- a/sys/kern/uipc_domain.c +++ b/sys/kern/uipc_domain.c @@ -188,8 +188,6 @@ domain_init(void *arg) return; KASSERT((flags & DOMF_INITED) == 0 || !IS_DEFAULT_VNET(curvnet), ("Premature initialization of domain in non-default vnet")); - if (dp->dom_init) - (*dp->dom_init)(); for (pr = dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++) { /* * Note that with VIMAGE enabled, domain_init() will be @@ -237,8 +235,6 @@ vnet_domain_uninit(void *arg) if ((atomic_load_acq_int(&dp->dom_flags) & DOMF_SUPPORTED) == 0) return; - if (dp->dom_destroy) - (*dp->dom_destroy)(); } #endif diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c index ceeb4741e3f4..89d4198652c3 100644 --- a/sys/kern/uipc_usrreq.c +++ b/sys/kern/uipc_usrreq.c @@ -303,7 +303,6 @@ static void unp_gc(__unused void *, int); static void unp_scan(struct mbuf *, void (*)(struct filedescent **, int)); static void unp_discard(struct file *); static void unp_freerights(struct filedescent **, int); -static void unp_init(void); static int unp_internalize(struct mbuf **, struct thread *); static void unp_internalize_fp(struct file *); static int unp_externalize(struct mbuf *, struct mbuf **, int); @@ -459,7 +458,6 @@ static struct protosw localsw[] = { static struct domain localdomain = { .dom_family = AF_LOCAL, .dom_name = "local", - .dom_init = unp_init, .dom_externalize = unp_externalize, .dom_dispose = unp_dispose, .dom_protosw = localsw, @@ -2148,15 +2146,10 @@ unp_zdtor(void *mem, int size __unused, void *arg __unused) #endif static void -unp_init(void) +unp_init(void *arg __unused) { uma_dtor dtor; -#ifdef VIMAGE - if (!IS_DEFAULT_VNET(curvnet)) - return; -#endif - #ifdef INVARIANTS dtor = unp_zdtor; #else @@ -2177,6 +2170,7 @@ unp_init(void) UNP_LINK_LOCK_INIT(); UNP_DEFERRED_LOCK_INIT(); } +SYSINIT(unp_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_SECOND, unp_init, NULL); static void unp_internalize_cleanup_rights(struct mbuf *control) diff --git a/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c b/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c index 973372b21761..c822276185cb 100644 --- a/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c +++ b/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c @@ -1907,7 +1907,7 @@ sdp_zone_change(void *tag) } static void -sdp_init(void) +sdp_init(void *arg __unused) { LIST_INIT(&sdp_list); @@ -1919,6 +1919,7 @@ sdp_init(void) rx_comp_wq = create_singlethread_workqueue("rx_comp_wq"); ib_register_client(&sdp_client); } +SYSINIT(sdp_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_SECOND, sdp_init, NULL); extern struct domain sdpdomain; @@ -1966,7 +1967,6 @@ struct protosw sdpsw[] = { struct domain sdpdomain = { .dom_family = AF_INET_SDP, .dom_name = "SDP", - .dom_init = sdp_init, .dom_protosw = sdpsw, .dom_protoswNPROTOSW = &sdpsw[sizeof(sdpsw)/sizeof(sdpsw[0])], }; diff --git a/sys/sys/domain.h b/sys/sys/domain.h index dc09c9786443..c9defe8e4341 100644 --- a/sys/sys/domain.h +++ b/sys/sys/domain.h @@ -51,11 +51,7 @@ struct domain { int dom_family; /* AF_xxx */ char *dom_name; int dom_flags; - void (*dom_init) /* initialize domain data structures */ - (void); int (*dom_probe)(void); /* check for support (optional) */ - void (*dom_destroy) /* cleanup structures / state */ - (void); int (*dom_externalize) /* externalize access rights */ (struct mbuf *, struct mbuf **, int); void (*dom_dispose) /* dispose of internalized rights */