]> err.no Git - linux-2.6/blobdiff - net/ipv4/ip_gre.c
[NETFILTER]: NAT: optional source port randomization support
[linux-2.6] / net / ipv4 / ip_gre.c
index 25221146debba75af69b3cf760ab1983c958f90e..51c83500790f7af8270ee6b36a9e95f3fdaa61f4 100644 (file)
@@ -557,7 +557,7 @@ static int ipgre_rcv(struct sk_buff *skb)
        struct iphdr *iph;
        u8     *h;
        __be16    flags;
-       u16    csum = 0;
+       __sum16   csum = 0;
        __be32 key = 0;
        u32    seqno = 0;
        struct ip_tunnel *tunnel;
@@ -580,7 +580,7 @@ static int ipgre_rcv(struct sk_buff *skb)
                if (flags&GRE_CSUM) {
                        switch (skb->ip_summed) {
                        case CHECKSUM_COMPLETE:
-                               csum = (u16)csum_fold(skb->csum);
+                               csum = csum_fold(skb->csum);
                                if (!csum)
                                        break;
                                /* fall through */
@@ -877,7 +877,7 @@ static int ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev)
                }
                if (tunnel->parms.o_flags&GRE_CSUM) {
                        *ptr = 0;
-                       *(__be16*)ptr = ip_compute_csum((void*)(iph+1), skb->len - sizeof(struct iphdr));
+                       *(__sum16*)ptr = ip_compute_csum((void*)(iph+1), skb->len - sizeof(struct iphdr));
                }
        }
 
@@ -1008,7 +1008,8 @@ ipgre_tunnel_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd)
                                goto done;
                        dev = t->dev;
                }
-               err = unregister_netdevice(dev);
+               unregister_netdevice(dev);
+               err = 0;
                break;
 
        default: