ipv4: Pull GSO registration out of inet_init()
authorVlad Yasevich <vyasevic@redhat.com>
Thu, 15 Nov 2012 08:49:21 +0000 (08:49 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 15 Nov 2012 22:39:23 +0000 (17:39 -0500)
Since GSO/GRO support is now separated, make IPv4 GSO a
stand-alone init call and not part of inet_init().

Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/af_inet.c

index 66f63ce07ac8ed1a2f1059f0a5ba7b8b96b65487..9f2e7fd8bea8bd61a729074f612d44350f0d4b48 100644 (file)
@@ -1665,11 +1665,6 @@ static int ipv4_proc_init(void);
  *     IP protocol layer initialiser
  */
 
-static struct packet_type ip_packet_type __read_mostly = {
-       .type = cpu_to_be16(ETH_P_IP),
-       .func = ip_rcv,
-};
-
 static struct packet_offload ip_packet_offload __read_mostly = {
        .type = cpu_to_be16(ETH_P_IP),
        .gso_send_check = inet_gso_send_check,
@@ -1678,6 +1673,27 @@ static struct packet_offload ip_packet_offload __read_mostly = {
        .gro_complete = inet_gro_complete,
 };
 
+static int __init ipv4_offload_init(void)
+{
+       /*
+        * Add offloads
+        */
+       if (inet_add_offload(&udp_offload, IPPROTO_UDP) < 0)
+               pr_crit("%s: Cannot add UDP protocol offload\n", __func__);
+       if (inet_add_offload(&tcp_offload, IPPROTO_TCP) < 0)
+               pr_crit("%s: Cannot add TCP protocol offlaod\n", __func__);
+
+       dev_add_offload(&ip_packet_offload);
+       return 0;
+}
+
+fs_initcall(ipv4_offload_init);
+
+static struct packet_type ip_packet_type __read_mostly = {
+       .type = cpu_to_be16(ETH_P_IP),
+       .func = ip_rcv,
+};
+
 static int __init inet_init(void)
 {
        struct sk_buff *dummy_skb;
@@ -1719,14 +1735,6 @@ static int __init inet_init(void)
 
        tcp_prot.sysctl_mem = init_net.ipv4.sysctl_tcp_mem;
 
-       /*
-        * Add offloads
-        */
-       if (inet_add_offload(&udp_offload, IPPROTO_UDP) < 0)
-               pr_crit("%s: Cannot add UDP protocol offload\n", __func__);
-       if (inet_add_offload(&tcp_offload, IPPROTO_TCP) < 0)
-               pr_crit("%s: Cannot add TCP protocol offlaod\n", __func__);
-
        /*
         *      Add all the base protocols.
         */
@@ -1799,7 +1807,6 @@ static int __init inet_init(void)
 
        ipfrag_init();
 
-       dev_add_offload(&ip_packet_offload);
        dev_add_pack(&ip_packet_type);
 
        rc = 0;