aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/tun.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index 2ff769bf3f35..e3fa65a4d96c 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -1235,7 +1235,7 @@ static ssize_t tun_put_user(struct tun_struct *tun,
1235{ 1235{
1236 struct tun_pi pi = { 0, skb->protocol }; 1236 struct tun_pi pi = { 0, skb->protocol };
1237 ssize_t total; 1237 ssize_t total;
1238 int vlan_offset; 1238 int vlan_offset = 0;
1239 int vlan_hlen = 0; 1239 int vlan_hlen = 0;
1240 int vnet_hdr_sz = 0; 1240 int vnet_hdr_sz = 0;
1241 1241
@@ -1304,6 +1304,8 @@ static ssize_t tun_put_user(struct tun_struct *tun,
1304 1304
1305 if (copy_to_iter(&gso, sizeof(gso), iter) != sizeof(gso)) 1305 if (copy_to_iter(&gso, sizeof(gso), iter) != sizeof(gso))
1306 return -EFAULT; 1306 return -EFAULT;
1307
1308 iov_iter_advance(iter, vnet_hdr_sz - sizeof(gso));
1307 } 1309 }
1308 1310
1309 if (vlan_hlen) { 1311 if (vlan_hlen) {