ipv4: Introduce ipip_offload_init helper function.
authorTonghao Zhang <xiangxia.m.yue@gmail.com>
Wed, 2 Aug 2017 16:34:15 +0000 (09:34 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Aug 2017 16:27:07 +0000 (09:27 -0700)
It's convenient to init ipip offload. We will check
the return value, and print KERN_CRIT info on failure.

Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/af_inet.c

index f0103ffe1cdbd5c0b9fb5019546e44be9e3de5b4..683ffafb6ff9e5f89bd97f66044b4cb31a4a310f 100644 (file)
@@ -1765,6 +1765,11 @@ static const struct net_offload ipip_offload = {
        },
 };
 
+static int __init ipip_offload_init(void)
+{
+       return inet_add_offload(&ipip_offload, IPPROTO_IPIP);
+}
+
 static int __init ipv4_offload_init(void)
 {
        /*
@@ -1774,9 +1779,10 @@ static int __init ipv4_offload_init(void)
                pr_crit("%s: Cannot add UDP protocol offload\n", __func__);
        if (tcpv4_offload_init() < 0)
                pr_crit("%s: Cannot add TCP protocol offload\n", __func__);
+       if (ipip_offload_init() < 0)
+               pr_crit("%s: Cannot add IPIP protocol offload\n", __func__);
 
        dev_add_offload(&ip_packet_offload);
-       inet_add_offload(&ipip_offload, IPPROTO_IPIP);
        return 0;
 }