summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorae <ae@FreeBSD.org>2017-04-03 13:04:36 +0000
committerae <ae@FreeBSD.org>2017-04-03 13:04:36 +0000
commitd69855b9e06e4d0e3ed773a4a4b538df944a30ca (patch)
tree522e0a05357ed1d39ae742c8e638f5b2c9349069
parent7ab1f51cc5ddad00d8110440d03a57122c81d560 (diff)
downloadFreeBSD-src-d69855b9e06e4d0e3ed773a4a4b538df944a30ca.zip
FreeBSD-src-d69855b9e06e4d0e3ed773a4a4b538df944a30ca.tar.gz
MFC r316013:
Make pfil's locking macros private. Obtained from: Yandex LLC
-rw-r--r--sys/net/pfil.c26
-rw-r--r--sys/net/pfil.h29
2 files changed, 26 insertions, 29 deletions
diff --git a/sys/net/pfil.c b/sys/net/pfil.c
index 625bcb8..b86714b 100644
--- a/sys/net/pfil.c
+++ b/sys/net/pfil.c
@@ -63,6 +63,32 @@ VNET_DEFINE(struct pfilheadhead, pfil_head_list);
VNET_DEFINE(struct rmlock, pfil_lock);
#define V_pfil_lock VNET(pfil_lock)
+#define PFIL_LOCK_INIT_REAL(l, t) \
+ rm_init_flags(l, "PFil " t " rmlock", RM_RECURSE)
+#define PFIL_LOCK_DESTROY_REAL(l) \
+ rm_destroy(l)
+#define PFIL_LOCK_INIT(p) do { \
+ if ((p)->flags & PFIL_FLAG_PRIVATE_LOCK) { \
+ PFIL_LOCK_INIT_REAL(&(p)->ph_lock, "private"); \
+ (p)->ph_plock = &(p)->ph_lock; \
+ } else \
+ (p)->ph_plock = &V_pfil_lock; \
+} while (0)
+#define PFIL_LOCK_DESTROY(p) do { \
+ if ((p)->flags & PFIL_FLAG_PRIVATE_LOCK) \
+ PFIL_LOCK_DESTROY_REAL((p)->ph_plock); \
+} while (0)
+
+#define PFIL_TRY_RLOCK(p, t) rm_try_rlock((p)->ph_plock, (t))
+#define PFIL_RLOCK(p, t) rm_rlock((p)->ph_plock, (t))
+#define PFIL_WLOCK(p) rm_wlock((p)->ph_plock)
+#define PFIL_RUNLOCK(p, t) rm_runlock((p)->ph_plock, (t))
+#define PFIL_WUNLOCK(p) rm_wunlock((p)->ph_plock)
+#define PFIL_WOWNED(p) rm_wowned((p)->ph_plock)
+
+#define PFIL_HEADLIST_LOCK() mtx_lock(&pfil_global_lock)
+#define PFIL_HEADLIST_UNLOCK() mtx_unlock(&pfil_global_lock)
+
/*
* pfil_run_hooks() runs the specified packet filter hook chain.
*/
diff --git a/sys/net/pfil.h b/sys/net/pfil.h
index c9a1b65..75e56d2 100644
--- a/sys/net/pfil.h
+++ b/sys/net/pfil.h
@@ -109,7 +109,6 @@ int pfil_head_register(struct pfil_head *);
int pfil_head_unregister(struct pfil_head *);
/* Public pfil locking functions for self managed locks by packet filters. */
-struct rm_priotracker; /* Do not require including rmlock header */
int pfil_try_rlock(struct pfil_head *, struct rm_priotracker *);
void pfil_rlock(struct pfil_head *, struct rm_priotracker *);
void pfil_runlock(struct pfil_head *, struct rm_priotracker *);
@@ -117,32 +116,4 @@ void pfil_wlock(struct pfil_head *);
void pfil_wunlock(struct pfil_head *);
int pfil_wowned(struct pfil_head *ph);
-/* Internal pfil locking functions. */
-#define PFIL_LOCK_INIT_REAL(l, t) \
- rm_init_flags(l, "PFil " t " rmlock", RM_RECURSE)
-#define PFIL_LOCK_DESTROY_REAL(l) \
- rm_destroy(l)
-#define PFIL_LOCK_INIT(p) do { \
- if ((p)->flags & PFIL_FLAG_PRIVATE_LOCK) { \
- PFIL_LOCK_INIT_REAL(&(p)->ph_lock, "private"); \
- (p)->ph_plock = &(p)->ph_lock; \
- } else \
- (p)->ph_plock = &V_pfil_lock; \
-} while (0)
-#define PFIL_LOCK_DESTROY(p) do { \
- if ((p)->flags & PFIL_FLAG_PRIVATE_LOCK) \
- PFIL_LOCK_DESTROY_REAL((p)->ph_plock); \
-} while (0)
-
-#define PFIL_TRY_RLOCK(p, t) rm_try_rlock((p)->ph_plock, (t))
-#define PFIL_RLOCK(p, t) rm_rlock((p)->ph_plock, (t))
-#define PFIL_WLOCK(p) rm_wlock((p)->ph_plock)
-#define PFIL_RUNLOCK(p, t) rm_runlock((p)->ph_plock, (t))
-#define PFIL_WUNLOCK(p) rm_wunlock((p)->ph_plock)
-#define PFIL_WOWNED(p) rm_wowned((p)->ph_plock)
-
-/* Internal locking macros for global/vnet pfil_head_list. */
-#define PFIL_HEADLIST_LOCK() mtx_lock(&pfil_global_lock)
-#define PFIL_HEADLIST_UNLOCK() mtx_unlock(&pfil_global_lock)
-
#endif /* _NET_PFIL_H_ */
OpenPOWER on IntegriCloud