]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - net/ipv6/ip6_offload.c
ipv6: Pull IPv6 GSO registration out of the module
[karo-tx-linux.git] / net / ipv6 / ip6_offload.c
index 01cf9835a581d56ec081e1624ff81ff1bef4a143..63d79d9005bd3dc61fbdaf89d798a38c954d005e 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/socket.h>
 #include <linux/netdevice.h>
 #include <linux/skbuff.h>
+#include <linux/printk.h>
 
 #include <net/protocol.h>
 #include <net/ipv6.h>
@@ -262,12 +263,18 @@ static struct packet_offload ipv6_packet_offload __read_mostly = {
        .gro_complete = ipv6_gro_complete,
 };
 
-void __init ipv6_offload_init(void)
+static int __init ipv6_offload_init(void)
 {
+
+       if (tcpv6_offload_init() < 0)
+               pr_crit("%s: Cannot add TCP protocol offload\n", __func__);
+       if (udp_offload_init() < 0)
+               pr_crit("%s: Cannot add UDP protocol offload\n", __func__);
+       if (ipv6_exthdrs_offload_init() < 0)
+               pr_crit("%s: Cannot add EXTHDRS protocol offload\n", __func__);
+
        dev_add_offload(&ipv6_packet_offload);
+       return 0;
 }
 
-void ipv6_offload_cleanup(void)
-{
-       dev_remove_offload(&ipv6_packet_offload);
-}
+fs_initcall(ipv6_offload_init);