kernel - Cleanup PFIL_MPSAFE
authorMatthew Dillon <dillon@apollo.backplane.com>
Sun, 8 Jan 2017 07:19:22 +0000 (23:19 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sun, 8 Jan 2017 07:19:22 +0000 (23:19 -0800)
* All pfil use cases are MPSAFE, so remove the PFIL_MPSAFE flag entirely
  and remove the old mplock wrappers that tested it.

sys/net/ipfw/ip_fw2.c
sys/net/ipfw3/ip_fw3.c
sys/net/pf/pf_ioctl.c
sys/net/pfil.c
sys/net/pfil.h

index 12455ea..8e80465 100644 (file)
@@ -4250,8 +4250,8 @@ ipfw_hook(void)
        if (pfh == NULL)
                return;
 
-       pfil_add_hook(ipfw_check_in, NULL, PFIL_IN | PFIL_MPSAFE, pfh);
-       pfil_add_hook(ipfw_check_out, NULL, PFIL_OUT | PFIL_MPSAFE, pfh);
+       pfil_add_hook(ipfw_check_in, NULL, PFIL_IN, pfh);
+       pfil_add_hook(ipfw_check_out, NULL, PFIL_OUT, pfh);
 }
 
 static void
index 28c9c2c..48fd96f 100644 (file)
@@ -1889,8 +1889,8 @@ ipfw_hook(void)
        if (pfh == NULL)
                return;
 
-       pfil_add_hook(ipfw_check_in, NULL, PFIL_IN | PFIL_MPSAFE, pfh);
-       pfil_add_hook(ipfw_check_out, NULL, PFIL_OUT | PFIL_MPSAFE, pfh);
+       pfil_add_hook(ipfw_check_in, NULL, PFIL_IN, pfh);
+       pfil_add_hook(ipfw_check_out, NULL, PFIL_OUT, pfh);
 }
 
 static void
index ccfbd26..ae0347d 100644 (file)
@@ -3260,8 +3260,8 @@ hook_pf(void)
                lwkt_reltoken(&pf_token);
                return (ENODEV);
        }
-       pfil_add_hook(pf_check_in, NULL, PFIL_IN | PFIL_MPSAFE, pfh_inet);
-       pfil_add_hook(pf_check_out, NULL, PFIL_OUT | PFIL_MPSAFE, pfh_inet);
+       pfil_add_hook(pf_check_in, NULL, PFIL_IN, pfh_inet);
+       pfil_add_hook(pf_check_out, NULL, PFIL_OUT, pfh_inet);
 #ifdef INET6
        pfh_inet6 = pfil_head_get(PFIL_TYPE_AF, AF_INET6);
        if (pfh_inet6 == NULL) {
@@ -3270,8 +3270,8 @@ hook_pf(void)
                lwkt_reltoken(&pf_token);
                return (ENODEV);
        }
-       pfil_add_hook(pf_check6_in, NULL, PFIL_IN | PFIL_MPSAFE, pfh_inet6);
-       pfil_add_hook(pf_check6_out, NULL, PFIL_OUT | PFIL_MPSAFE, pfh_inet6);
+       pfil_add_hook(pf_check6_in, NULL, PFIL_IN, pfh_inet6);
+       pfil_add_hook(pf_check6_out, NULL, PFIL_OUT, pfh_inet6);
 #endif
 
        pf_pfil_hooked = 1;
index 8353f9c..a23654c 100644 (file)
 
 #define PFIL_CFGPORT   netisr_cpuport(0)
 
-#define PFIL_GETMPLOCK(pfh) \
-do { \
-       if (((pfh)->pfil_flags & PFIL_MPSAFE) == 0) \
-               get_mplock(); \
-} while (0)
-
-#define PFIL_RELMPLOCK(pfh) \
-do { \
-       if (((pfh)->pfil_flags & PFIL_MPSAFE) == 0) \
-               rel_mplock(); \
-} while (0)
-
 /*
  * The packet filter hooks are designed for anything to call them to
  * possibly intercept the packet.
@@ -120,10 +108,7 @@ pfil_run_hooks(struct pfil_head *ph, struct mbuf **mp, struct ifnet *ifp,
 
        TAILQ_FOREACH(pfh, list, pfil_link) {
                if (pfh->pfil_func != NULL) {
-                       PFIL_GETMPLOCK(pfh);
                        rv = pfh->pfil_func(pfh->pfil_arg, &m, ifp, dir);
-                       PFIL_RELMPLOCK(pfh);
-
                        if (rv != 0 || m == NULL)
                                break;
                }
@@ -269,7 +254,6 @@ reply:
  *     PFIL_IN         call me on incoming packets
  *     PFIL_OUT        call me on outgoing packets
  *     PFIL_ALL        call me on all of the above
- *     PFIL_MPSAFE     call me without BGL
  */
 int
 pfil_add_hook(pfil_func_t func, void *arg, int flags, struct pfil_head *ph)
index e99801d..4e356bf 100644 (file)
@@ -50,7 +50,6 @@ typedef int   (*pfil_func_t)(void *, struct mbuf **, struct ifnet *, int);
 
 #define PFIL_IN                0x00000001
 #define PFIL_OUT       0x00000002
-#define PFIL_MPSAFE    0x00000004
 #define PFIL_ALL       (PFIL_IN|PFIL_OUT)
 
 typedef        TAILQ_HEAD(pfil_list, packet_filter_hook) pfil_list_t;