[SK_BUFF]: More skb_put related conversions to skb_reset_transport_header
authorArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 15 Mar 2007 00:04:34 +0000 (21:04 -0300)
committerDavid S. Miller <davem@sunset.davemloft.net>
Thu, 26 Apr 2007 05:25:59 +0000 (22:25 -0700)
This is similar to the skb_reset_network_header(), i.e. at the point we reset
the transport header pointer/offset skb->tail is equal to skb->data.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/irda/af_irda.c
net/netrom/af_netrom.c
net/rose/af_rose.c
net/x25/af_x25.c

index c3cd2ba123e5479270c94dfd5c152c519f6abe44..bf994c85e45a388bda2fdf3002bbd1bb06520625 100644 (file)
@@ -1274,7 +1274,6 @@ static int irda_sendmsg(struct kiocb *iocb, struct socket *sock,
        struct sock *sk = sock->sk;
        struct irda_sock *self;
        struct sk_buff *skb;
-       unsigned char *asmptr;
        int err;
 
        IRDA_DEBUG(4, "%s(), len=%zd\n", __FUNCTION__, len);
@@ -1317,9 +1316,9 @@ static int irda_sendmsg(struct kiocb *iocb, struct socket *sock,
                return -ENOBUFS;
 
        skb_reserve(skb, self->max_header_size + 16);
-
-       asmptr = skb->h.raw = skb_put(skb, len);
-       err = memcpy_fromiovec(asmptr, msg->msg_iov, len);
+       skb_reset_transport_header(skb);
+       skb_put(skb, len);
+       err = memcpy_fromiovec(skb_transport_header(skb), msg->msg_iov, len);
        if (err) {
                kfree_skb(skb);
                return err;
@@ -1530,7 +1529,6 @@ static int irda_sendmsg_dgram(struct kiocb *iocb, struct socket *sock,
        struct sock *sk = sock->sk;
        struct irda_sock *self;
        struct sk_buff *skb;
-       unsigned char *asmptr;
        int err;
 
        IRDA_DEBUG(4, "%s(), len=%zd\n", __FUNCTION__, len);
@@ -1566,10 +1564,11 @@ static int irda_sendmsg_dgram(struct kiocb *iocb, struct socket *sock,
                return -ENOBUFS;
 
        skb_reserve(skb, self->max_header_size);
+       skb_reset_transport_header(skb);
 
        IRDA_DEBUG(4, "%s(), appending user data\n", __FUNCTION__);
-       asmptr = skb->h.raw = skb_put(skb, len);
-       err = memcpy_fromiovec(asmptr, msg->msg_iov, len);
+       skb_put(skb, len);
+       err = memcpy_fromiovec(skb_transport_header(skb), msg->msg_iov, len);
        if (err) {
                kfree_skb(skb);
                return err;
@@ -1602,7 +1601,6 @@ static int irda_sendmsg_ultra(struct kiocb *iocb, struct socket *sock,
        __u8 pid = 0;
        int bound = 0;
        struct sk_buff *skb;
-       unsigned char *asmptr;
        int err;
 
        IRDA_DEBUG(4, "%s(), len=%zd\n", __FUNCTION__, len);
@@ -1662,10 +1660,11 @@ static int irda_sendmsg_ultra(struct kiocb *iocb, struct socket *sock,
                return -ENOBUFS;
 
        skb_reserve(skb, self->max_header_size);
+       skb_reset_transport_header(skb);
 
        IRDA_DEBUG(4, "%s(), appending user data\n", __FUNCTION__);
-       asmptr = skb->h.raw = skb_put(skb, len);
-       err = memcpy_fromiovec(asmptr, msg->msg_iov, len);
+       skb_put(skb, len);
+       err = memcpy_fromiovec(skb_transport_header(skb), msg->msg_iov, len);
        if (err) {
                kfree_skb(skb);
                return err;
index 8d0f30a015df49588008fc7887c69fd9ffe11a75..053fa26ff90ab017a66ec1f2067b6174be0e4279 100644 (file)
@@ -1074,6 +1074,7 @@ static int nr_sendmsg(struct kiocb *iocb, struct socket *sock,
                goto out;
 
        skb_reserve(skb, size - len);
+       skb_reset_transport_header(skb);
 
        /*
         *      Push down the NET/ROM header
@@ -1094,14 +1095,12 @@ static int nr_sendmsg(struct kiocb *iocb, struct socket *sock,
        /*
         *      Put the data on the end
         */
+       skb_put(skb, len);
 
-       skb->h.raw = skb_put(skb, len);
-
-       asmptr = skb->h.raw;
        SOCK_DEBUG(sk, "NET/ROM: Appending user data\n");
 
        /* User data follows immediately after the NET/ROM transport header */
-       if (memcpy_fromiovec(asmptr, msg->msg_iov, len)) {
+       if (memcpy_fromiovec(skb_transport_header(skb), msg->msg_iov, len)) {
                kfree_skb(skb);
                err = -EFAULT;
                goto out;
index 6d8684a11ac64dc210f3577fab93120c6bedd471..1511697b22baa73b9c025292b48e46b1b3faffcd 100644 (file)
@@ -1105,9 +1105,10 @@ static int rose_sendmsg(struct kiocb *iocb, struct socket *sock,
         */
        SOCK_DEBUG(sk, "ROSE: Appending user data\n");
 
-       asmptr = skb->h.raw = skb_put(skb, len);
+       skb_reset_transport_header(skb);
+       skb_put(skb, len);
 
-       err = memcpy_fromiovec(asmptr, msg->msg_iov, len);
+       err = memcpy_fromiovec(skb_transport_header(skb), msg->msg_iov, len);
        if (err) {
                kfree_skb(skb);
                return err;
index fc713059ccddfaace2717674a9c54f7260508993..adcda8ebee9c2ec344d9fc48631dba97d8b7dbfc 100644 (file)
@@ -1058,9 +1058,10 @@ static int x25_sendmsg(struct kiocb *iocb, struct socket *sock,
         */
        SOCK_DEBUG(sk, "x25_sendmsg: Copying user data\n");
 
-       asmptr = skb->h.raw = skb_put(skb, len);
+       skb_reset_transport_header(skb);
+       skb_put(skb, len);
 
-       rc = memcpy_fromiovec(asmptr, msg->msg_iov, len);
+       rc = memcpy_fromiovec(skb_transport_header(skb), msg->msg_iov, len);
        if (rc)
                goto out_kfree_skb;