Herbert Xu
57ea52a865
gro: Disable frag0 optimization on IPv6 ext headers
...
The GRO fast path caches the frag0 address. This address becomes
invalid if frag0 is modified by pskb_may_pull or its variants.
So whenever that happens we must disable the frag0 optimization.
This is usually done through the combination of gro_header_hard
and gro_header_slow, however, the IPv6 extension header path did
the pulling directly and would continue to use the GRO fast path
incorrectly.
This patch fixes it by disabling the fast path when we enter the
IPv6 extension header path.
Fixes: 78a478d0ef ("gro: Inline skb_gro_header and cache frag0 virtual address")
Reported-by: Slava Shwartsman <slavash@mellanox.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-01-10 21:30:33 -05:00
..
ila
ila: Fix crash caused by rhashtable changes
2016-11-02 15:26:02 -04:00
netfilter
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
addrconf.c
ipv6 addrconf: Implemented enhanced DAD (RFC7527)
2016-12-03 23:21:37 -05:00
addrconf_core.c
addrlabel.c
af_inet6.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
ah6.c
net: inet: Support UID-based routing in IP protocols.
2016-11-04 14:45:23 -04:00
anycast.c
calipso.c
datagram.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
esp6.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2016-12-03 12:29:53 -05:00
exthdrs.c
ktime: Get rid of the union
2016-12-25 17:21:22 +01:00
exthdrs_core.c
exthdrs_offload.c
fib6_rules.c
fou6.c
icmp.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
inet6_connection_sock.c
inet: Fix get port to handle zero port number with soreuseport set
2016-12-17 11:13:19 -05:00
inet6_hashtables.c
inet: Fix missing return value in inet6_hash
2016-10-29 12:01:49 -04:00
ip6_checksum.c
ip6_fib.c
ip6_flowlabel.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
ip6_gre.c
netns: make struct pernet_operations::id unsigned int
2016-11-18 10:59:15 -05:00
ip6_icmp.c
ip6_input.c
ip6_offload.c
gro: Disable frag0 optimization on IPv6 ext headers
2017-01-10 21:30:33 -05:00
ip6_offload.h
ip6_output.c
ipv6: Should use consistent conditional judgement for ip6 fragment between __ip6_append_data and ip6_finish_output
2016-12-29 11:55:17 -05:00
ip6_tunnel.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
ip6_udp_tunnel.c
ip6_udp_tunnel: remove unused IPCB related codes
2016-11-02 15:18:36 -04:00
ip6_vti.c
vti6: fix device register to report IFLA_INFO_KIND
2017-01-06 16:09:09 -05:00
ip6mr.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
ipcomp6.c
net: inet: Support UID-based routing in IP protocols.
2016-11-04 14:45:23 -04:00
ipv6_sockglue.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
Kconfig
ipv6: sr: add option to control lwtunnel support
2016-11-16 11:29:46 -05:00
Makefile
ipv6: sr: add option to control lwtunnel support
2016-11-16 11:29:46 -05:00
mcast.c
ipv6: fix a potential deadlock in do_ipv6_setsockopt()
2016-10-21 11:29:02 -04:00
mcast_snoop.c
mip6.c
ktime: Get rid of ktime_equal()
2016-12-25 17:21:23 +01:00
ndisc.c
ipv6 addrconf: Implemented enhanced DAD (RFC7527)
2016-12-03 23:21:37 -05:00
netfilter.c
net: inet: Support UID-based routing in IP protocols.
2016-11-04 14:45:23 -04:00
output_core.c
ipv6: Set skb->protocol properly for local output
2016-12-02 12:34:22 -05:00
ping.c
net: inet: Support UID-based routing in IP protocols.
2016-11-04 14:45:23 -04:00
proc.c
protocol.c
raw.c
ipv6: handle -EFAULT from skb_copy_bits
2016-12-23 12:20:39 -05:00
reassembly.c
ipv6: on reassembly, record frag_max_size
2016-11-03 15:41:11 -04:00
route.c
ipv6: fix typos
2017-01-09 16:34:15 -05:00
seg6.c
ipv6: sr: add option to control lwtunnel support
2016-11-16 11:29:46 -05:00
seg6_hmac.c
ipv6: sr: add core files for SR HMAC support
2016-11-09 20:40:06 -05:00
seg6_iptunnel.c
ipv6: sr: add calls to verify and insert HMAC signatures
2016-11-09 20:40:06 -05:00
sit.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
syncookies.c
tcp: randomize tcp timestamp offsets for each connection
2016-12-02 12:49:59 -05:00
sysctl_net_ipv6.c
tcp_ipv6.c
tcp: tsq: move tsq_flags close to sk_wmem_alloc
2016-12-05 13:32:24 -05:00
tcpv6_offload.c
tunnel6.c
udp.c
Replace <asm/uaccess.h> with <linux/uaccess.h> globally
2016-12-24 11:46:01 -08:00
udp_impl.h
udplite: call proper backlog handlers
2016-11-24 15:32:14 -05:00
udp_offload.c
udplite.c
udplite: call proper backlog handlers
2016-11-24 15:32:14 -05:00
xfrm6_input.c
xfrm6_mode_beet.c
xfrm6_mode_ro.c
xfrm6_mode_transport.c
xfrm6_mode_tunnel.c
xfrm6_output.c
xfrm6_policy.c
xfrm6_protocol.c
xfrm6_state.c
xfrm6_tunnel.c
netns: make struct pernet_operations::id unsigned int
2016-11-18 10:59:15 -05:00