This was previously backported to fix issues with our inet_fragment backport; with that largely gone, we can get rid of this too.
Signed-off-by: Joe Stringer <j...@ovn.org> --- This is effectively a revert of commit bf1f0d35ceb9 ("datapath: Fix IPv6 fragment expiry crash."). It should be paired with the previous patch, but is kept separate to ease backporting. --- datapath/linux/Modules.mk | 2 - datapath/linux/compat/include/linux/ipv6.h | 15 ---- datapath/linux/compat/reassembly.c | 110 ----------------------------- 3 files changed, 127 deletions(-) delete mode 100644 datapath/linux/compat/include/linux/ipv6.h delete mode 100644 datapath/linux/compat/reassembly.c diff --git a/datapath/linux/Modules.mk b/datapath/linux/Modules.mk index ef080837bbfc..ec476c796c2e 100644 --- a/datapath/linux/Modules.mk +++ b/datapath/linux/Modules.mk @@ -20,7 +20,6 @@ openvswitch_sources += \ linux/compat/net_namespace.c \ linux/compat/nf_conntrack_core.c \ linux/compat/nf_conntrack_reasm.c \ - linux/compat/reassembly.c \ linux/compat/reciprocal_div.c \ linux/compat/skbuff-openvswitch.c \ linux/compat/socket.c \ @@ -44,7 +43,6 @@ openvswitch_headers += \ linux/compat/include/linux/if_link.h \ linux/compat/include/linux/if_vlan.h \ linux/compat/include/linux/in.h \ - linux/compat/include/linux/ipv6.h \ linux/compat/include/linux/jiffies.h \ linux/compat/include/linux/kconfig.h \ linux/compat/include/linux/kernel.h \ diff --git a/datapath/linux/compat/include/linux/ipv6.h b/datapath/linux/compat/include/linux/ipv6.h deleted file mode 100644 index 8a79f9c0e6a8..000000000000 --- a/datapath/linux/compat/include/linux/ipv6.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef __LINUX_IPV6_WRAPPER_H -#define __LINUX_IPV6_WRAPPER_H 1 - -#include_next <linux/ipv6.h> - -struct frag_queue; -struct inet_frags; - -#if LINUX_VERSION_CODE < KERNEL_VERSION(3,17,0) -void rpl_ip6_expire_frag_queue(struct net *net, struct frag_queue *fq, - struct inet_frags *frags); -#define ip6_expire_frag_queue rpl_ip6_expire_frag_queue -#endif - -#endif diff --git a/datapath/linux/compat/reassembly.c b/datapath/linux/compat/reassembly.c deleted file mode 100644 index d40ba7318608..000000000000 --- a/datapath/linux/compat/reassembly.c +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Backported from upstream commit a72a5e2d34ec - * ("inet: kill unused skb_free op") - * - * IPv6 fragment reassembly - * Linux INET6 implementation - * - * Authors: - * Pedro Roque <ro...@di.fc.ul.pt> - * - * Based on: net/ipv4/ip_fragment.c - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version - * 2 of the License, or (at your option) any later version. - */ - -/* - * Fixes: - * Andi Kleen Make it work with multiple hosts. - * More RFC compliance. - * - * Horst von Brand Add missing #include <linux/string.h> - * Alexey Kuznetsov SMP races, threading, cleanup. - * Patrick McHardy LRU queue of frag heads for evictor. - * Mitsuru KANDA @USAGI Register inet6_protocol{}. - * David Stevens and - * YOSHIFUJI,H. @USAGI Always remove fragment header to - * calculate ICV correctly. - */ - -#define pr_fmt(fmt) "IPv6: " fmt - -#include <linux/version.h> -#if LINUX_VERSION_CODE < KERNEL_VERSION(3,17,0) - -#include <linux/errno.h> -#include <linux/types.h> -#include <linux/string.h> -#include <linux/socket.h> -#include <linux/sockios.h> -#include <linux/jiffies.h> -#include <linux/net.h> -#include <linux/list.h> -#include <linux/netdevice.h> -#include <linux/in6.h> -#include <linux/ipv6.h> -#include <linux/icmpv6.h> -#include <linux/random.h> -#include <linux/jhash.h> -#include <linux/skbuff.h> -#include <linux/slab.h> -#include <linux/export.h> - -#include <net/sock.h> -#include <net/snmp.h> - -#include <net/ipv6.h> -#include <net/ip6_route.h> -#include <net/protocol.h> -#include <net/transp_v6.h> -#include <net/rawv6.h> -#include <net/ndisc.h> -#include <net/addrconf.h> -#include <net/inet_frag.h> -#include <net/inet_ecn.h> - -void ip6_expire_frag_queue(struct net *net, struct frag_queue *fq, - struct inet_frags *frags) -{ - struct net_device *dev = NULL; - - spin_lock(&fq->q.lock); - - if (qp_flags(fq) & INET_FRAG_COMPLETE) - goto out; - - inet_frag_kill(&fq->q, frags); - - rcu_read_lock(); - dev = dev_get_by_index_rcu(net, fq->iif); - if (!dev) - goto out_rcu_unlock; - - IP6_INC_STATS_BH(net, __in6_dev_get(dev), IPSTATS_MIB_REASMFAILS); - - if (inet_frag_evicting(&fq->q)) - goto out_rcu_unlock; - - IP6_INC_STATS_BH(net, __in6_dev_get(dev), IPSTATS_MIB_REASMTIMEOUT); - - /* Don't send error if the first segment did not arrive. */ - if (!(qp_flags(fq) & INET_FRAG_FIRST_IN) || !fq->q.fragments) - goto out_rcu_unlock; - - /* But use as source device on which LAST ARRIVED - * segment was received. And do not use fq->dev - * pointer directly, device might already disappeared. - */ - fq->q.fragments->dev = dev; - icmpv6_send(fq->q.fragments, ICMPV6_TIME_EXCEED, ICMPV6_EXC_FRAGTIME, 0); -out_rcu_unlock: - rcu_read_unlock(); -out: - spin_unlock(&fq->q.lock); - inet_frag_put(&fq->q, frags); -} - -#endif -- 2.9.0 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev