IPv6 exthedrs offload registration fixed
Subsystems (2)
PATCH 1/1 IPv6 exthedrs offload registration fixed
Without this fix, ipv6_exthdrs_offload_init doesn't register IPPROTO_DSTOPTS offload, but returns 0 (as the IPPROTO_ROUTING registration actually succeeds).
This then causes the ipv6_gso_segment to drop IPv6 packets with IPPROTO_DSTOPTS header.
The issue detected and the fix verified by running MS HCK Offload LSO test on top of QEMU Windows guests, as this test sends IPv6 packets with IPPROTO_DSTOPTS.
--- net/ipv6/exthdrs_offload.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
net/ipv6/exthdrs_offload.c +2 -2
@@ -25,11 +25,11 @@ int __init ipv6_exthdrs_offload_init(void)int ret; ret =inet6_add_offload (&rthdr_offload,IPPROTO_ROUTING ); -if (!ret) +if (ret) goto out; ret =inet6_add_offload (&dstopt_offload,IPPROTO_DSTOPTS ); -if (!ret) +if (ret) goto out_rt; out:
Signature · 1 line
1.7.9.5
David Miller
maintainerFrom: Anton Nayshtut <[email protected]>
Date: Wed, 5 Mar 2014 08:30:08 +0200
Quoted 11 lines
Without this fix,
ipv6_exthdrs_offload_initdoesn't registerIPPROTO_DSTOPTSoffload, but returns 0 (as theIPPROTO_ROUTINGregistration actually succeeds).This then causes the
ipv6_gso_segmentto drop IPv6 packets withIPPROTO_DSTOPTSheader.The issue detected and the fix verified by running MS HCK Offload LSO test on top of QEMU Windows guests, as this test sends IPv6 packets with
IPPROTO_DSTOPTS.Signed-off-by Anton Nayshtut <[email protected]>
Can't believe this was broken so obviously for so long :-)
Applied and queued up for -stable, thanks.