aboutsummaryrefslogtreecommitdiffstats
path: root/net/atm/common.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/atm/common.c')
-rw-r--r--net/atm/common.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/net/atm/common.c b/net/atm/common.c
index f59112944c91..b84057e41bd6 100644
--- a/net/atm/common.c
+++ b/net/atm/common.c
@@ -577,9 +577,6 @@ int vcc_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *m,
577 struct atm_vcc *vcc; 577 struct atm_vcc *vcc;
578 struct sk_buff *skb; 578 struct sk_buff *skb;
579 int eff, error; 579 int eff, error;
580 struct iov_iter from;
581
582 iov_iter_init(&from, WRITE, m->msg_iov, m->msg_iovlen, size);
583 580
584 lock_sock(sk); 581 lock_sock(sk);
585 if (sock->state != SS_CONNECTED) { 582 if (sock->state != SS_CONNECTED) {
@@ -634,7 +631,7 @@ int vcc_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *m,
634 goto out; 631 goto out;
635 skb->dev = NULL; /* for paths shared with net_device interfaces */ 632 skb->dev = NULL; /* for paths shared with net_device interfaces */
636 ATM_SKB(skb)->atm_options = vcc->atm_options; 633 ATM_SKB(skb)->atm_options = vcc->atm_options;
637 if (copy_from_iter(skb_put(skb, size), size, &from) != size) { 634 if (copy_from_iter(skb_put(skb, size), size, &m->msg_iter) != size) {
638 kfree_skb(skb); 635 kfree_skb(skb);
639 error = -EFAULT; 636 error = -EFAULT;
640 goto out; 637 goto out;