back ported version 1.4.43f bnx2 driver
[linux-2.6.git] / net / ipv4 / af_inet.c
index 7351fa1..47966eb 100644 (file)
@@ -68,7 +68,6 @@
  */
 
 #include <linux/config.h>
-#include <linux/err.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/socket.h>
@@ -833,56 +832,48 @@ int inet_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
 const
 #endif
 struct proto_ops inet_stream_ops = {
-       .family            = PF_INET,
-       .owner             = THIS_MODULE,
-       .release           = inet_release,
-       .bind              = inet_bind,
-       .connect           = inet_stream_connect,
-       .socketpair        = sock_no_socketpair,
-       .accept            = inet_accept,
-       .getname           = inet_getname,
-       .poll              = tcp_poll,
-       .ioctl             = inet_ioctl,
-       .listen            = inet_listen,
-       .shutdown          = inet_shutdown,
-       .setsockopt        = sock_common_setsockopt,
-       .getsockopt        = sock_common_getsockopt,
-       .sendmsg           = inet_sendmsg,
-       .recvmsg           = sock_common_recvmsg,
-       .mmap              = sock_no_mmap,
-       .sendpage          = tcp_sendpage,
-#ifdef CONFIG_COMPAT
-       .compat_setsockopt = compat_sock_common_setsockopt,
-       .compat_getsockopt = compat_sock_common_getsockopt,
-#endif
+       .family =       PF_INET,
+       .owner =        THIS_MODULE,
+       .release =      inet_release,
+       .bind =         inet_bind,
+       .connect =      inet_stream_connect,
+       .socketpair =   sock_no_socketpair,
+       .accept =       inet_accept,
+       .getname =      inet_getname,
+       .poll =         tcp_poll,
+       .ioctl =        inet_ioctl,
+       .listen =       inet_listen,
+       .shutdown =     inet_shutdown,
+       .setsockopt =   sock_common_setsockopt,
+       .getsockopt =   sock_common_getsockopt,
+       .sendmsg =      inet_sendmsg,
+       .recvmsg =      sock_common_recvmsg,
+       .mmap =         sock_no_mmap,
+       .sendpage =     tcp_sendpage
 };
 
 #if !defined(CONFIG_VNET) && !defined(CONFIG_VNET_MODULE)
 const
 #endif
 struct proto_ops inet_dgram_ops = {
-       .family            = PF_INET,
-       .owner             = THIS_MODULE,
-       .release           = inet_release,
-       .bind              = inet_bind,
-       .connect           = inet_dgram_connect,
-       .socketpair        = sock_no_socketpair,
-       .accept            = sock_no_accept,
-       .getname           = inet_getname,
-       .poll              = udp_poll,
-       .ioctl             = inet_ioctl,
-       .listen            = sock_no_listen,
-       .shutdown          = inet_shutdown,
-       .setsockopt        = sock_common_setsockopt,
-       .getsockopt        = sock_common_getsockopt,
-       .sendmsg           = inet_sendmsg,
-       .recvmsg           = sock_common_recvmsg,
-       .mmap              = sock_no_mmap,
-       .sendpage          = inet_sendpage,
-#ifdef CONFIG_COMPAT
-       .compat_setsockopt = compat_sock_common_setsockopt,
-       .compat_getsockopt = compat_sock_common_getsockopt,
-#endif
+       .family =       PF_INET,
+       .owner =        THIS_MODULE,
+       .release =      inet_release,
+       .bind =         inet_bind,
+       .connect =      inet_dgram_connect,
+       .socketpair =   sock_no_socketpair,
+       .accept =       sock_no_accept,
+       .getname =      inet_getname,
+       .poll =         udp_poll,
+       .ioctl =        inet_ioctl,
+       .listen =       sock_no_listen,
+       .shutdown =     inet_shutdown,
+       .setsockopt =   sock_common_setsockopt,
+       .getsockopt =   sock_common_getsockopt,
+       .sendmsg =      inet_sendmsg,
+       .recvmsg =      sock_common_recvmsg,
+       .mmap =         sock_no_mmap,
+       .sendpage =     inet_sendpage,
 };
 
 /*
@@ -896,28 +887,24 @@ EXPORT_SYMBOL(inet_sockraw_ops);
 static const
 #endif
 struct proto_ops inet_sockraw_ops = {
-       .family            = PF_INET,
-       .owner             = THIS_MODULE,
-       .release           = inet_release,
-       .bind              = inet_bind,
-       .connect           = inet_dgram_connect,
-       .socketpair        = sock_no_socketpair,
-       .accept            = sock_no_accept,
-       .getname           = inet_getname,
-       .poll              = datagram_poll,
-       .ioctl             = inet_ioctl,
-       .listen            = sock_no_listen,
-       .shutdown          = inet_shutdown,
-       .setsockopt        = sock_common_setsockopt,
-       .getsockopt        = sock_common_getsockopt,
-       .sendmsg           = inet_sendmsg,
-       .recvmsg           = sock_common_recvmsg,
-       .mmap              = sock_no_mmap,
-       .sendpage          = inet_sendpage,
-#ifdef CONFIG_COMPAT
-       .compat_setsockopt = compat_sock_common_setsockopt,
-       .compat_getsockopt = compat_sock_common_getsockopt,
-#endif
+       .family =       PF_INET,
+       .owner =        THIS_MODULE,
+       .release =      inet_release,
+       .bind =         inet_bind,
+       .connect =      inet_dgram_connect,
+       .socketpair =   sock_no_socketpair,
+       .accept =       sock_no_accept,
+       .getname =      inet_getname,
+       .poll =         datagram_poll,
+       .ioctl =        inet_ioctl,
+       .listen =       sock_no_listen,
+       .shutdown =     inet_shutdown,
+       .setsockopt =   sock_common_setsockopt,
+       .getsockopt =   sock_common_getsockopt,
+       .sendmsg =      inet_sendmsg,
+       .recvmsg =      sock_common_recvmsg,
+       .mmap =         sock_no_mmap,
+       .sendpage =     inet_sendpage,
 };
 
 #if defined(CONFIG_VNET) || defined(CONFIG_VNET_MODULE)
@@ -1158,88 +1145,6 @@ int inet_sk_rebuild_header(struct sock *sk)
 
 EXPORT_SYMBOL(inet_sk_rebuild_header);
 
-static int inet_gso_send_check(struct sk_buff *skb)
-{
-       struct iphdr *iph;
-       struct net_protocol *ops;
-       int proto;
-       int ihl;
-       int err = -EINVAL;
-
-       if (unlikely(!pskb_may_pull(skb, sizeof(*iph))))
-               goto out;
-
-       iph = skb->nh.iph;
-       ihl = iph->ihl * 4;
-       if (ihl < sizeof(*iph))
-               goto out;
-
-       if (unlikely(!pskb_may_pull(skb, ihl)))
-               goto out;
-
-       skb->h.raw = __skb_pull(skb, ihl);
-       iph = skb->nh.iph;
-       proto = iph->protocol & (MAX_INET_PROTOS - 1);
-       err = -EPROTONOSUPPORT;
-
-       rcu_read_lock();
-       ops = rcu_dereference(inet_protos[proto]);
-       if (likely(ops && ops->gso_send_check))
-               err = ops->gso_send_check(skb);
-       rcu_read_unlock();
-
-out:
-       return err;
-}
-
-static struct sk_buff *inet_gso_segment(struct sk_buff *skb, int features)
-{
-       struct sk_buff *segs = ERR_PTR(-EINVAL);
-       struct iphdr *iph;
-       struct net_protocol *ops;
-       int proto;
-       int ihl;
-       int id;
-
-       if (!pskb_may_pull(skb, sizeof(*iph)))
-               goto out;
-
-       iph = skb->nh.iph;
-       ihl = iph->ihl * 4;
-       if (ihl < sizeof(*iph))
-               goto out;
-
-       if (!pskb_may_pull(skb, ihl))
-               goto out;
-
-       skb->h.raw = __skb_pull(skb, ihl);
-       iph = skb->nh.iph;
-       id = ntohs(iph->id);
-       proto = iph->protocol & (MAX_INET_PROTOS - 1);
-       segs = ERR_PTR(-EPROTONOSUPPORT);
-
-       rcu_read_lock();
-       ops = rcu_dereference(inet_protos[proto]);
-       if (ops && ops->gso_segment)
-               segs = ops->gso_segment(skb, features);
-       rcu_read_unlock();
-
-       if (!segs || unlikely(IS_ERR(segs)))
-               goto out;
-
-       skb = segs;
-       do {
-               iph = skb->nh.iph;
-               iph->id = htons(id++);
-               iph->tot_len = htons(skb->len - skb->mac_len);
-               iph->check = 0;
-               iph->check = ip_fast_csum(skb->nh.raw, iph->ihl);
-       } while ((skb = skb->next));
-
-out:
-       return segs;
-}
-
 #ifdef CONFIG_IP_MULTICAST
 static struct net_protocol igmp_protocol = {
        .handler =      igmp_rcv,
@@ -1249,8 +1154,6 @@ static struct net_protocol igmp_protocol = {
 static struct net_protocol tcp_protocol = {
        .handler =      tcp_v4_rcv,
        .err_handler =  tcp_v4_err,
-       .gso_send_check = tcp_v4_gso_send_check,
-       .gso_segment =  tcp_tso_segment,
        .no_policy =    1,
 };
 
@@ -1296,8 +1199,6 @@ static int ipv4_proc_init(void);
 static struct packet_type ip_packet_type = {
        .type = __constant_htons(ETH_P_IP),
        .func = ip_rcv,
-       .gso_send_check = inet_gso_send_check,
-       .gso_segment = inet_gso_segment,
 };
 
 static int __init inet_init(void)
@@ -1405,7 +1306,7 @@ out_unregister_udp_proto:
        goto out;
 }
 
-fs_initcall(inet_init);
+module_init(inet_init);
 
 /* ------------------------------------------------------------------------ */