Hi Eric, > > WARNING: CPU: 1 PID: 5042 at net/ipv6/ip6_output.c:1800 __ip6_append_data.isra.0+0x1be8/0x47f0 net/ipv6/ip6_output.c:1800 That would appear to be this: if (WARN_ON_ONCE(copy > msg->msg_iter.count)) goto error; However, I have a problem that the repro program errors out at this point before it gets that far: if (cork->length + length > maxnonfragsize - headersize) { emsgsize: pmtu = max_t(int, mtu - headersize + sizeof(struct ipv6hdr), 0); ipv6_local_error(sk, EMSGSIZE, fl6, pmtu); return -EMSGSIZE; } Are you able to reproduce the issue? The values in and around that point are: cork->length 0 length 65540 maxnonfragsize 65575 headersize 40 transhdrlen 4 mtu 65536 ip6_sk_ignore_df(sk) true with maxnonfragsize coming from 'sizeof(struct ipv6hdr) + IPV6_MAXPLEN'. Is that even viable for the size of a packet? David