compat: Detect and use __skb_dst_copy().
authorJoe Stringer <joe@ovn.org>
Thu, 24 Dec 2015 19:41:40 +0000 (11:41 -0800)
committerJoe Stringer <joe@ovn.org>
Tue, 2 Feb 2016 22:26:46 +0000 (14:26 -0800)
Signed-off-by: Joe Stringer <joe@ovn.org>
Acked-by: Pravin B Shelar <pshelar@ovn.org>
acinclude.m4
datapath/linux/compat/include/net/dst.h

index 54c6e72..dddbd1c 100644 (file)
@@ -471,6 +471,7 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
   OVS_GREP_IFELSE([$KSRC/include/net/checksum.h], [csum_unfold])
 
   OVS_GREP_IFELSE([$KSRC/include/net/dst.h], [dst_discard_sk])
+  OVS_GREP_IFELSE([$KSRC/include/net/dst.h], [__skb_dst_copy])
 
   OVS_GREP_IFELSE([$KSRC/include/net/genetlink.h], [genl_has_listeners])
   OVS_GREP_IFELSE([$KSRC/include/net/genetlink.h], [mcgrp_offset])
index de74c93..5ec3d30 100644 (file)
@@ -42,7 +42,7 @@ static inline void skb_dst_set_noref(struct sk_buff *skb,
                                     struct dst_entry *dst) { }
 static inline void dst_init_metrics(struct dst_entry *dst, const u32 *metrics,
                                    bool read_only) { }
-#elif  LINUX_VERSION_CODE < KERNEL_VERSION(4,3,0)
+#elif !defined(HAVE___SKB_DST_COPY)
 static inline void __skb_dst_copy(struct sk_buff *nskb, unsigned long refdst)
 {
        nskb->_skb_refdst = refdst;