From: Florian Westphal <f...@strlen.de>

Upstream commit:

    commit cb9c68363efb6d1f950ec55fb06e031ee70db5fc
    Author: Florian Westphal <f...@strlen.de>
    Date:   Mon Jan 23 18:21:56 2017 +0100

    skbuff: add and use skb_nfct helper

    Followup patch renames skb->nfct and changes its type so add a helper to
    avoid intrusive rename change later.

    Signed-off-by: Florian Westphal <f...@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pa...@netfilter.org>

Signed-off-by: Jarno Rajahalme <ja...@ovn.org>
---
 acinclude.m4                                 |  1 +
 datapath/conntrack.c                         |  6 +++---
 datapath/linux/compat/include/linux/skbuff.h | 11 +++++++++++
 3 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/acinclude.m4 b/acinclude.m4
index e8b64b5..f26bcc1 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -604,6 +604,7 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
   OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [skb_clear_hash_if_not_l4])
   OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [skb_postpush_rcsum])
   OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [lco_csum])
+  OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [skb_nfct])
 
   OVS_GREP_IFELSE([$KSRC/include/linux/types.h], [bool],
                   [OVS_DEFINE([HAVE_BOOL_TYPE])])
diff --git a/datapath/conntrack.c b/datapath/conntrack.c
index 3c51ce6..4a1b1ba 100644
--- a/datapath/conntrack.c
+++ b/datapath/conntrack.c
@@ -762,8 +762,8 @@ static int __ovs_ct_lookup(struct net *net, struct 
sw_flow_key *key,
 
                /* Associate skb with specified zone. */
                if (tmpl) {
-                       if (skb->nfct)
-                               nf_conntrack_put(skb->nfct);
+                       if (skb_nfct(skb))
+                               nf_conntrack_put(skb_nfct(skb));
                        nf_conntrack_get(&tmpl->ct_general);
                        skb->nfct = &tmpl->ct_general;
                        skb->nfctinfo = IP_CT_NEW;
@@ -864,7 +864,7 @@ static int ovs_ct_lookup(struct net *net, struct 
sw_flow_key *key,
                if (err)
                        return err;
 
-               ct = (struct nf_conn *)skb->nfct;
+               ct = (struct nf_conn *)skb_nfct(skb);
                if (ct)
                        nf_ct_deliver_cached_events(ct);
        }
diff --git a/datapath/linux/compat/include/linux/skbuff.h 
b/datapath/linux/compat/include/linux/skbuff.h
index a2cbd78..943d5f8 100644
--- a/datapath/linux/compat/include/linux/skbuff.h
+++ b/datapath/linux/compat/include/linux/skbuff.h
@@ -371,4 +371,15 @@ static inline __wsum lco_csum(struct sk_buff *skb)
        return csum_partial(l4_hdr, csum_start - l4_hdr, partial);
 }
 #endif
+
+#ifndef HAVE_SKB_NFCT
+static inline struct nf_conntrack *skb_nfct(const struct sk_buff *skb)
+{
+#if IS_ENABLED(CONFIG_NF_CONNTRACK)
+       return skb->nfct;
+#else
+       return NULL;
+#endif
+}
+#endif
 #endif
-- 
2.1.4

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to