On 6/1/19 12:14 PM, Stephen Suryaputra wrote: > On Fri, May 31, 2019 at 05:06:16PM -0600, David Ahern wrote: >> On 5/29/19 11:08 PM, Stephen Suryaputra wrote: >>> diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c >>> index 1a832f5e190b..9b365c345c34 100644 >>> --- a/net/ipv6/reassembly.c >>> +++ b/net/ipv6/reassembly.c >>> @@ -260,6 +260,9 @@ static int ip6_frag_reasm(struct frag_queue *fq, struct >>> sk_buff *skb, >>> int payload_len; >>> u8 ecn; >>> >>> + if (netif_is_l3_master(dev)) >>> + dev = dev_get_by_index_rcu(net, inet6_iif(skb)); >>> + >>> inet_frag_kill(&fq->q); >>> >>> ecn = ip_frag_ecn_table[fq->ecn]; >>> >> >> this part changes skb->dev. Seems like it has an unintended effect if >> the packet is delivered locally. > > Ah, right. How about this then? >
looks ok to me.