Merge tag 'iommu-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
[linux/fpc-iii.git] / net / ipv6 / exthdrs_offload.c
blob06750d65d48005369dbd74954f64e6dc5c13b2fb
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3 * IPV6 GSO/GRO offload support
4 * Linux INET6 implementation
6 * IPV6 Extension Header GSO/GRO support
7 */
8 #include <net/protocol.h>
9 #include "ip6_offload.h"
11 static const struct net_offload rthdr_offload = {
12 .flags = INET6_PROTO_GSO_EXTHDR,
15 static const struct net_offload dstopt_offload = {
16 .flags = INET6_PROTO_GSO_EXTHDR,
19 int __init ipv6_exthdrs_offload_init(void)
21 int ret;
23 ret = inet6_add_offload(&rthdr_offload, IPPROTO_ROUTING);
24 if (ret)
25 goto out;
27 ret = inet6_add_offload(&dstopt_offload, IPPROTO_DSTOPTS);
28 if (ret)
29 goto out_rt;
31 out:
32 return ret;
34 out_rt:
35 inet6_del_offload(&rthdr_offload, IPPROTO_ROUTING);
36 goto out;