From 713a4e46d7a5b42951e5ab5536d3078b08db6cdc Mon Sep 17 00:00:00 2001 From: Simon Arlott Date: Mon, 3 May 2010 10:20:27 +0000 Subject: [PATCH] --- yaml --- r: 190610 b: refs/heads/master c: 19937d0482cfe194fe52e97e59aa58ec911de0d1 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/ppp_generic.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 7a83441cdfac..90a5cb24317a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ea8420e9f5dff7324607671f0b7ab7fbf726339d +refs/heads/master: 19937d0482cfe194fe52e97e59aa58ec911de0d1 diff --git a/trunk/drivers/net/ppp_generic.c b/trunk/drivers/net/ppp_generic.c index 75e8903c3754..8518a2e58e53 100644 --- a/trunk/drivers/net/ppp_generic.c +++ b/trunk/drivers/net/ppp_generic.c @@ -405,6 +405,7 @@ static ssize_t ppp_read(struct file *file, char __user *buf, DECLARE_WAITQUEUE(wait, current); ssize_t ret; struct sk_buff *skb = NULL; + struct iovec iov; ret = count; @@ -448,7 +449,9 @@ static ssize_t ppp_read(struct file *file, char __user *buf, if (skb->len > count) goto outf; ret = -EFAULT; - if (copy_to_user(buf, skb->data, skb->len)) + iov.iov_base = buf; + iov.iov_len = count; + if (skb_copy_datagram_iovec(skb, 0, &iov, skb->len)) goto outf; ret = skb->len;