diff options
author | Stefano Brivio <sbrivio@redhat.com> | 2023-02-16 01:36:17 +0100 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2023-02-16 17:33:54 +0100 |
commit | 7564b58a7f27bd926b0ce76b4fda145dca2d15dd (patch) | |
tree | 41ea536c6517de6d663c502b6ccfbd1ca276a340 /tap.c | |
parent | 3d0de2c1d72757a7754532f788b53102420e987d (diff) | |
download | passt-7564b58a7f27bd926b0ce76b4fda145dca2d15dd.tar passt-7564b58a7f27bd926b0ce76b4fda145dca2d15dd.tar.gz passt-7564b58a7f27bd926b0ce76b4fda145dca2d15dd.tar.bz2 passt-7564b58a7f27bd926b0ce76b4fda145dca2d15dd.tar.lz passt-7564b58a7f27bd926b0ce76b4fda145dca2d15dd.tar.xz passt-7564b58a7f27bd926b0ce76b4fda145dca2d15dd.tar.zst passt-7564b58a7f27bd926b0ce76b4fda145dca2d15dd.zip |
tap: Use single counter for iov elements in tap_send_frames_pasta()
David points out that using multiple counters to go over the iov
array, namely 'i' and 'iov', makes mistakes easier. We can't just use
'iov', unless we reserve an element with zero iov_len at the end,
which isn't really justified.
Simply use 'i' to iterate over the array.
Link: https://archives.passt.top/passt-dev/Y+mfenvLn3VJ7Dg5@yekko/
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'tap.c')
-rw-r--r-- | tap.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -316,13 +316,13 @@ static void tap_send_frames_pasta(struct ctx *c, { size_t i; - for (i = 0; i < n; i++, iov++) { - if (write(c->fd_tap, (char *)iov->iov_base, iov->iov_len) < 0) { + for (i = 0; i < n; i++) { + if (write(c->fd_tap, (char *)iov[i].iov_base, + iov[i].iov_len) < 0) { debug("tap write: %s", strerror(errno)); if (errno != EAGAIN && errno != EWOULDBLOCK) tap_handler(c, c->fd_tap, EPOLLERR, NULL); i--; - iov--; } } } |