diff options
Diffstat (limited to 'libhw_cr')
-rw-r--r-- | libhw_cr/host_net.c | 8 | ||||
-rw-r--r-- | libhw_cr/rp2040_hwspi.c | 8 | ||||
-rw-r--r-- | libhw_cr/w5500.c | 6 |
3 files changed, 15 insertions, 7 deletions
diff --git a/libhw_cr/host_net.c b/libhw_cr/host_net.c index 01f4370..d162504 100644 --- a/libhw_cr/host_net.c +++ b/libhw_cr/host_net.c @@ -241,6 +241,10 @@ static ssize_t hostnet_tcp_readv(struct _hostnet_tcp_conn *conn, const struct io assert(conn); assert(iov); assert(iovcnt > 0); + size_t count = 0; + for (int i = 0; i < iovcnt; i++) + count += iov[i].iov_len; + assert(count); ssize_t ret; struct hostnet_pthread_readv_args args = { @@ -319,6 +323,10 @@ static ssize_t hostnet_tcp_writev(struct _hostnet_tcp_conn *conn, const struct i assert(conn); assert(iov); assert(iovcnt > 0); + size_t count = 0; + for (int i = 0; i < iovcnt; i++) + count += iov[i].iov_len; + assert(count); ssize_t ret; struct hostnet_pthread_writev_args args = { diff --git a/libhw_cr/rp2040_hwspi.c b/libhw_cr/rp2040_hwspi.c index c0b4fa4..ee03b03 100644 --- a/libhw_cr/rp2040_hwspi.c +++ b/libhw_cr/rp2040_hwspi.c @@ -158,12 +158,14 @@ static void rp2040_hwspi_readwritev(struct rp2040_hwspi *self, const struct dupl uint8_t bogus_rx_dst; + size_t count = 0; int pruned_iovcnt = 0; - for (int i = 0; i < iovcnt; i++) + for (int i = 0; i < iovcnt; i++) { + count += iov[i].iov_len; if (iov[i].iov_len) pruned_iovcnt++; - if (!pruned_iovcnt) - return; + } + assert(count); /* It doesn't *really* matter which aliases we choose: * diff --git a/libhw_cr/w5500.c b/libhw_cr/w5500.c index e676364..cb424b0 100644 --- a/libhw_cr/w5500.c +++ b/libhw_cr/w5500.c @@ -608,10 +608,9 @@ static ssize_t w5500_tcp_writev(struct _w5500_socket *socket, const struct iovec size_t count = 0; for (int i = 0; i < iovcnt; i++) count += iov[i].iov_len; + assert(count); log_debugf("tcp_conn.write(%zu)", count); ASSERT_SELF(stream_conn, TCP); - if (count == 0) - return 0; /* What we really want is to pause until we receive an ACK for * some data we just queued, so that we can line up some new @@ -701,10 +700,9 @@ static ssize_t w5500_tcp_readv(struct _w5500_socket *socket, const struct iovec size_t count = 0; for (int i = 0; i < iovcnt; i++) count += iov[i].iov_len; + assert(count); log_debugf("tcp_conn.read(%zu)", count); ASSERT_SELF(stream_conn, TCP); - if (count == 0) - return 0; struct alarmclock_trigger trigger = {}; if (socket->read_deadline_ns) |