diff options
Diffstat (limited to 'drivers/net/tun.c')
| -rw-r--r-- | drivers/net/tun.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/tun.c b/drivers/net/tun.c index bfa9bb48e42d..9c61f8734a40 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c @@ -1010,8 +1010,10 @@ static int zerocopy_sg_from_iovec(struct sk_buff *skb, const struct iovec *from,  			return -EMSGSIZE;  		num_pages = get_user_pages_fast(base, size, 0, &page[i]);  		if (num_pages != size) { -			for (i = 0; i < num_pages; i++) -				put_page(page[i]); +			int j; + +			for (j = 0; j < num_pages; j++) +				put_page(page[i + j]);  			return -EFAULT;  		}  		truesize = size * PAGE_SIZE;  |