mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-03 07:38:10 +00:00
macvtap: advance iov iterator when needed in macvtap_put_user()
When mergeable buffer is used, vnet_hdr_sz is greater than sizeof struct
virtio_net_hdr. So we need advance the iov iterators in this case.
Fixes 6c36d2e26c
("macvtap: Use iovec iterators")
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
914efb02be
commit
7cc76f5150
1 changed files with 2 additions and 0 deletions
|
@ -797,6 +797,8 @@ static ssize_t macvtap_put_user(struct macvtap_queue *q,
|
|||
if (copy_to_iter(&vnet_hdr, sizeof(vnet_hdr), iter) !=
|
||||
sizeof(vnet_hdr))
|
||||
return -EFAULT;
|
||||
|
||||
iov_iter_advance(iter, vnet_hdr_len - sizeof(vnet_hdr));
|
||||
}
|
||||
total = vnet_hdr_len;
|
||||
total += skb->len;
|
||||
|
|
Loading…
Reference in a new issue