diff options
Diffstat (limited to 'drivers/net/tun.c')
-rw-r--r-- | drivers/net/tun.c | 4 |
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) { |