summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2012-10-28 10:18:08 (GMT)
committerScott Wood <scottwood@freescale.com>2015-02-13 22:21:06 (GMT)
commit8b9cc0e9ce1b2ddc42deca0c2187160254c876ea (patch)
tree4db5e2d1dff2f377b80f87bbe662eafedcec16da /net
parentddfd2eb507c698249704a242b395c23225092572 (diff)
downloadlinux-fsl-qoriq-8b9cc0e9ce1b2ddc42deca0c2187160254c876ea.tar.xz
net: netfilter: Serialize xt_write_recseq sections on RT
The netfilter code relies only on the implicit semantics of local_bh_disable() for serializing wt_write_recseq sections. RT breaks that and needs explicit serialization here. Reported-by: Peter LaDow <petela@gocougs.wsu.edu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: stable-rt@vger.kernel.org
Diffstat (limited to 'net')
-rw-r--r--net/netfilter/core.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/net/netfilter/core.c b/net/netfilter/core.c
index 593b16e..6bd22aa 100644
--- a/net/netfilter/core.c
+++ b/net/netfilter/core.c
@@ -21,11 +21,17 @@
#include <linux/proc_fs.h>
#include <linux/mutex.h>
#include <linux/slab.h>
+#include <linux/locallock.h>
#include <net/net_namespace.h>
#include <net/sock.h>
#include "nf_internals.h"
+#ifdef CONFIG_PREEMPT_RT_BASE
+DEFINE_LOCAL_IRQ_LOCK(xt_write_lock);
+EXPORT_PER_CPU_SYMBOL(xt_write_lock);
+#endif
+
static DEFINE_MUTEX(afinfo_mutex);
const struct nf_afinfo __rcu *nf_afinfo[NFPROTO_NUMPROTO] __read_mostly;