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
|
@ -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 New Issue