]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/net/slhc.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit...
[net-next-2.6.git] / drivers / net / slhc.c
index 9a540e2092b9a658f7b6ba6234e3675bd87d68aa..140d63f3cafa8ff2b976e3d26fd5ef488c9cb4d7 100644 (file)
@@ -42,7 +42,7 @@
  *                      Modularization.
  *     - Jan 1995      Bjorn Ekwall
  *                     Use ip_fast_csum from ip.h
- *     - July 1995     Christos A. Polyzols 
+ *     - July 1995     Christos A. Polyzols
  *                     Spotted bug in tcp option checking
  *
  *
@@ -51,6 +51,7 @@
  */
 
 #include <linux/module.h>
+#include <linux/slab.h>
 #include <linux/types.h>
 #include <linux/string.h>
 #include <linux/errno.h>
@@ -174,7 +175,7 @@ put16(unsigned char *cp, unsigned short x)
 
 
 /* Encode a number */
-unsigned char *
+static unsigned char *
 encode(unsigned char *cp, unsigned short n)
 {
        if(n >= 256 || n == 0){
@@ -199,7 +200,7 @@ pull16(unsigned char **cpp)
 }
 
 /* Decode a number */
-long
+static long
 decode(unsigned char **cpp)
 {
        register int x;
@@ -233,15 +234,16 @@ slhc_compress(struct slcompress *comp, unsigned char *icp, int isize,
        register unsigned char *cp = new_seq;
        struct iphdr *ip;
        struct tcphdr *th, *oth;
+       __sum16 csum;
 
 
        /*
         *      Don't play with runt packets.
         */
-        
+
        if(isize<sizeof(struct iphdr))
                return isize;
-               
+
        ip = (struct iphdr *) icp;
 
        /* Bail if this packet isn't TCP, or is an IP fragment */
@@ -428,7 +430,7 @@ found:
        /* Grab the cksum before we overwrite it below.  Then update our
         * state with this packet's header.
         */
-       deltaA = ntohs(th->check);
+       csum = th->check;
        memcpy(&cs->cs_ip,ip,20);
        memcpy(&cs->cs_tcp,th,20);
        /* We want to use the original packet as our compressed packet.
@@ -449,7 +451,8 @@ found:
                *cpp = ocp;
                *cp++ = changes;
        }
-       cp = put16(cp,(short)deltaA);   /* Write TCP checksum */
+       *(__sum16 *)cp = csum;
+       cp += 2;
 /* deltaS is now the size of the change section of the compressed header */
        memcpy(cp,new_seq,deltaS);      /* Write list of deltas */
        memcpy(cp+deltaS,icp+hlen,isize-hlen);
@@ -519,10 +522,8 @@ slhc_uncompress(struct slcompress *comp, unsigned char *icp, int isize)
        thp = &cs->cs_tcp;
        ip = &cs->cs_ip;
 
-       if((x = pull16(&cp)) == -1) {   /* Read the TCP checksum */
-               goto bad;
-        }
-       thp->check = htons(x);
+       thp->check = *(__sum16 *)cp;
+       cp += 2;
 
        thp->psh = (changes & TCP_PUSH_BIT) ? 1 : 0;
 /*