netfilter: conntrack: move expectation event helper to ecache.c
authorFlorian Westphal <fw@strlen.de>
Mon, 11 Apr 2016 19:52:36 +0000 (21:52 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 12 Apr 2016 21:01:57 +0000 (23:01 +0200)
Not performance critical, it is only invoked when an expectation is
added/destroyed.

While at it, kill unused nf_ct_expect_event() wrapper.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/net/netfilter/nf_conntrack_ecache.h
net/netfilter/nf_conntrack_ecache.c

index 019a5b8598685ec08fd3824451cd52654a324eef..fa36447371c648e5a3f15942216d7c6fe153a639 100644 (file)
@@ -130,43 +130,9 @@ int nf_ct_expect_register_notifier(struct net *net,
 void nf_ct_expect_unregister_notifier(struct net *net,
                                      struct nf_exp_event_notifier *nb);
 
-static inline void
-nf_ct_expect_event_report(enum ip_conntrack_expect_events event,
-                         struct nf_conntrack_expect *exp,
-                         u32 portid,
-                         int report)
-{
-       struct net *net = nf_ct_exp_net(exp);
-       struct nf_exp_event_notifier *notify;
-       struct nf_conntrack_ecache *e;
-
-       rcu_read_lock();
-       notify = rcu_dereference(net->ct.nf_expect_event_cb);
-       if (notify == NULL)
-               goto out_unlock;
-
-       e = nf_ct_ecache_find(exp->master);
-       if (e == NULL)
-               goto out_unlock;
-
-       if (e->expmask & (1 << event)) {
-               struct nf_exp_event item = {
-                       .exp    = exp,
-                       .portid = portid,
-                       .report = report
-               };
-               notify->fcn(1 << event, &item);
-       }
-out_unlock:
-       rcu_read_unlock();
-}
-
-static inline void
-nf_ct_expect_event(enum ip_conntrack_expect_events event,
-                  struct nf_conntrack_expect *exp)
-{
-       nf_ct_expect_event_report(event, exp, 0, 0);
-}
+void nf_ct_expect_event_report(enum ip_conntrack_expect_events event,
+                              struct nf_conntrack_expect *exp,
+                              u32 portid, int report);
 
 int nf_conntrack_ecache_pernet_init(struct net *net);
 void nf_conntrack_ecache_pernet_fini(struct net *net);
@@ -203,8 +169,6 @@ static inline int nf_conntrack_event_report(enum ip_conntrack_events event,
                                            u32 portid,
                                            int report) { return 0; }
 static inline void nf_ct_deliver_cached_events(const struct nf_conn *ct) {}
-static inline void nf_ct_expect_event(enum ip_conntrack_expect_events event,
-                                     struct nf_conntrack_expect *exp) {}
 static inline void nf_ct_expect_event_report(enum ip_conntrack_expect_events e,
                                             struct nf_conntrack_expect *exp,
                                             u32 portid,
index a0ebab96a92f16b069f9f3717259ea46791e89aa..d28011b428455d83d1230210982699cb8774c55b 100644 (file)
@@ -221,6 +221,36 @@ out_unlock:
 }
 EXPORT_SYMBOL_GPL(nf_ct_deliver_cached_events);
 
+void nf_ct_expect_event_report(enum ip_conntrack_expect_events event,
+                              struct nf_conntrack_expect *exp,
+                              u32 portid, int report)
+
+{
+       struct net *net = nf_ct_exp_net(exp);
+       struct nf_exp_event_notifier *notify;
+       struct nf_conntrack_ecache *e;
+
+       rcu_read_lock();
+       notify = rcu_dereference(net->ct.nf_expect_event_cb);
+       if (!notify)
+               goto out_unlock;
+
+       e = nf_ct_ecache_find(exp->master);
+       if (!e)
+               goto out_unlock;
+
+       if (e->expmask & (1 << event)) {
+               struct nf_exp_event item = {
+                       .exp    = exp,
+                       .portid = portid,
+                       .report = report
+               };
+               notify->fcn(1 << event, &item);
+       }
+out_unlock:
+       rcu_read_unlock();
+}
+
 int nf_conntrack_register_notifier(struct net *net,
                                   struct nf_ct_event_notifier *new)
 {