fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / net / decnet / dn_nsp_in.c
index 547523b..39a6cf7 100644 (file)
@@ -45,7 +45,6 @@
     GNU General Public License for more details.
 *******************************************************************************/
 
-#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/types.h>
 #include <linux/socket.h>
@@ -361,9 +360,9 @@ static void dn_nsp_conn_conf(struct sock *sk, struct sk_buff *skb)
                        scp->max_window = decnet_no_fc_max_cwnd;
 
                if (skb->len > 0) {
-                       unsigned char dlen = *skb->data;
+                       u16 dlen = *skb->data;
                        if ((dlen <= 16) && (dlen <= skb->len)) {
-                               scp->conndata_in.opt_optl = dn_htons((__u16)dlen);
+                               scp->conndata_in.opt_optl = dn_htons(dlen);
                                memcpy(scp->conndata_in.opt_data, skb->data + 1, dlen);
                        }
                }
@@ -405,9 +404,9 @@ static void dn_nsp_disc_init(struct sock *sk, struct sk_buff *skb)
        memset(scp->discdata_in.opt_data, 0, 16);
 
        if (skb->len > 0) {
-               unsigned char dlen = *skb->data;
+               u16 dlen = *skb->data;
                if ((dlen <= 16) && (dlen <= skb->len)) {
-                       scp->discdata_in.opt_optl = dn_htons((__u16)dlen);
+                       scp->discdata_in.opt_optl = dn_htons(dlen);
                        memcpy(scp->discdata_in.opt_data, skb->data + 1, dlen);
                }
        }
@@ -587,7 +586,7 @@ static __inline__ int dn_queue_skb(struct sock *sk, struct sk_buff *skb, int sig
                goto out;
         }
 
-       err = sk_filter(sk, skb, 0);
+       err = sk_filter(sk, skb);
        if (err)
                goto out;
 
@@ -801,12 +800,11 @@ got_it:
                 * We linearize everything except data segments here.
                 */
                if (cb->nsp_flags & ~0x60) {
-                       if (unlikely(skb_is_nonlinear(skb)) &&
-                           skb_linearize(skb, GFP_ATOMIC) != 0)
+                       if (unlikely(skb_linearize(skb)))
                                goto free_out;
                }
 
-               return sk_receive_skb(sk, skb);
+               return sk_receive_skb(sk, skb, 0);
        }
 
        return dn_nsp_no_socket(skb, reason);