From 48e93b2f5147bacf8b47096902071c378be13fbf Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Sat, 7 Jan 2017 23:19:22 -0800 Subject: [PATCH] kernel - Cleanup PFIL_MPSAFE * 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 | 4 ++-- sys/net/ipfw3/ip_fw3.c | 4 ++-- sys/net/pf/pf_ioctl.c | 8 ++++---- sys/net/pfil.c | 16 ---------------- sys/net/pfil.h | 1 - 5 files changed, 8 insertions(+), 25 deletions(-) diff --git a/sys/net/ipfw/ip_fw2.c b/sys/net/ipfw/ip_fw2.c index 12455eac74..8e8046519e 100644 --- a/sys/net/ipfw/ip_fw2.c +++ b/sys/net/ipfw/ip_fw2.c @@ -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 diff --git a/sys/net/ipfw3/ip_fw3.c b/sys/net/ipfw3/ip_fw3.c index 28c9c2cef7..48fd96faaa 100644 --- a/sys/net/ipfw3/ip_fw3.c +++ b/sys/net/ipfw3/ip_fw3.c @@ -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 diff --git a/sys/net/pf/pf_ioctl.c b/sys/net/pf/pf_ioctl.c index ccfbd26a04..ae0347d2ca 100644 --- a/sys/net/pf/pf_ioctl.c +++ b/sys/net/pf/pf_ioctl.c @@ -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; diff --git a/sys/net/pfil.c b/sys/net/pfil.c index 8353f9cd6d..a23654c34a 100644 --- a/sys/net/pfil.c +++ b/sys/net/pfil.c @@ -47,18 +47,6 @@ #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) diff --git a/sys/net/pfil.h b/sys/net/pfil.h index e99801d270..4e356bf8d6 100644 --- a/sys/net/pfil.h +++ b/sys/net/pfil.h @@ -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; -- 2.41.0