With my previous diff to remove pfctlinput() false positive we can now
turn the last splsoftnet() into an assert.

pfctlinput() is only used on OpenBSD for PRC_REDIRECT_HOST.  It is
always called during the input path, so with the NET_LOCK() held.

ok?

Index: kern/uipc_domain.c
===================================================================
RCS file: /cvs/src/sys/kern/uipc_domain.c,v
retrieving revision 1.49
diff -u -p -r1.49 uipc_domain.c
--- kern/uipc_domain.c  27 Feb 2017 19:16:56 -0000      1.49
+++ kern/uipc_domain.c  8 May 2017 08:57:03 -0000
@@ -221,15 +221,15 @@ pfctlinput(int cmd, struct sockaddr *sa)
 {
        struct domain *dp;
        struct protosw *pr;
-       int i, s;
+       int i;
+
+       NET_ASSERT_LOCKED();
 
-       s = splsoftnet();
        for (i = 0; (dp = domains[i]) != NULL; i++) {
                for (pr = dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++)
                        if (pr->pr_ctlinput)
                                (*pr->pr_ctlinput)(cmd, sa, 0, NULL);
        }
-       splx(s);
 }
 
 void

Reply via email to