git: cea34d0705cc - main - bhyve: Address signed/unsigned comparison warnings in the e1000 model

From: Mark Johnston <markj_at_FreeBSD.org>
Date: Tue, 25 Oct 2022 15:17:10 UTC
The branch main has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=cea34d0705ccd3944cce1bed5b4ff31aad05d983

commit cea34d0705ccd3944cce1bed5b4ff31aad05d983
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2022-10-25 13:54:50 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2022-10-25 15:16:57 +0000

    bhyve: Address signed/unsigned comparison warnings in the e1000 model
    
    No functional change intended.
    
    MFC after:      1 week
---
 usr.sbin/bhyve/pci_e82545.c | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/usr.sbin/bhyve/pci_e82545.c b/usr.sbin/bhyve/pci_e82545.c
index 1591136002f6..22127eb2208a 100644
--- a/usr.sbin/bhyve/pci_e82545.c
+++ b/usr.sbin/bhyve/pci_e82545.c
@@ -835,7 +835,8 @@ e82545_rx_callback(int fd __unused, enum ev_type type __unused, void *param)
 	struct e82545_softc *sc = param;
 	struct e1000_rx_desc *rxd;
 	struct iovec vec[64];
-	int left, len, lim, maxpktsz, maxpktdesc, bufsz, i, n, size;
+	ssize_t len;
+	int left, lim, maxpktsz, maxpktdesc, bufsz, i, n, size;
 	uint32_t cause = 0;
 	uint16_t *tp, tag, head;
 
@@ -877,7 +878,7 @@ e82545_rx_callback(int fd __unused, enum ev_type type __unused, void *param)
 		}
 		len = netbe_recv(sc->esc_be, vec, maxpktdesc);
 		if (len <= 0) {
-			DPRINTF("netbe_recv() returned %d", len);
+			DPRINTF("netbe_recv() returned %zd", len);
 			goto done;
 		}
 
@@ -892,7 +893,7 @@ e82545_rx_callback(int fd __unused, enum ev_type type __unused, void *param)
 			len += ETHER_CRC_LEN;
 		n = (len + bufsz - 1) / bufsz;
 
-		DPRINTF("packet read %d bytes, %d segs, head %d",
+		DPRINTF("packet read %zd bytes, %d segs, head %d",
 		    len, n, head);
 
 		/* Apply VLAN filter. */
@@ -929,7 +930,7 @@ e82545_rx_callback(int fd __unused, enum ev_type type __unused, void *param)
 		    E1000_RXD_STAT_EOP | E1000_RXD_STAT_DD;
 
 		/* Schedule receive interrupts. */
-		if (len <= sc->esc_RSRPD) {
+		if ((uint32_t)len <= sc->esc_RSRPD) {
 			cause |= E1000_ICR_SRPD | E1000_ICR_RXT0;
 		} else {
 			/* XXX: RDRT and RADV timers should be here. */
@@ -976,7 +977,7 @@ e82545_buf_checksum(uint8_t *buf, int len)
 	uint32_t sum = 0;
 
 	/* Checksum all the pairs of bytes first... */
-	for (i = 0; i < (len & ~1U); i += 2)
+	for (i = 0; i < (len & ~1); i += 2)
 		sum += *((u_int16_t *)(buf + i));
 
 	/*
@@ -991,9 +992,10 @@ e82545_buf_checksum(uint8_t *buf, int len)
 }
 
 static uint16_t
-e82545_iov_checksum(struct iovec *iov, int iovcnt, int off, int len)
+e82545_iov_checksum(struct iovec *iov, int iovcnt, unsigned int off,
+    unsigned int len)
 {
-	int now, odd;
+	unsigned int now, odd;
 	uint32_t sum = 0, s;
 
 	/* Skip completely unneeded vectors. */
@@ -1039,11 +1041,11 @@ static void
 e82545_transmit_checksum(struct iovec *iov, int iovcnt, struct ck_info *ck)
 {
 	uint16_t cksum;
-	int cklen;
+	unsigned int cklen;
 
 	DPRINTF("tx cksum: iovcnt/s/off/len %d/%d/%d/%d",
 	    iovcnt, ck->ck_start, ck->ck_off, ck->ck_len);
-	cklen = ck->ck_len ? ck->ck_len - ck->ck_start + 1 : INT_MAX;
+	cklen = ck->ck_len ? ck->ck_len - ck->ck_start + 1 : UINT_MAX;
 	cksum = e82545_iov_checksum(iov, iovcnt, ck->ck_start, cklen);
 	*(uint16_t *)((uint8_t *)iov[0].iov_base + ck->ck_off) = ~cksum;
 }
@@ -1084,9 +1086,8 @@ e82545_transmit(struct e82545_softc *sc, uint16_t head, uint16_t tail,
 	struct ck_info ckinfo[2];
 	struct iovec *iov;
 	union  e1000_tx_udesc *dsc;
-	int desc, dtype, len, ntype, iovcnt, tcp, tso;
-	int mss, paylen, seg, tiovcnt, left, now, nleft, nnow, pv, pvoff;
-	unsigned hdrlen, vlen, pktlen;
+	int desc, dtype, ntype, iovcnt, tcp, tso, paylen, seg, tiovcnt, pv;
+	unsigned hdrlen, vlen, pktlen, len, left, mss, now, nnow, nleft, pvoff;
 	uint32_t tcpsum, tcpseq;
 	uint16_t ipcs, tcpcs, ipid, ohead;
 	bool invalid;
@@ -1371,7 +1372,7 @@ e82545_transmit(struct e82545_softc *sc, uint16_t head, uint16_t tail,
 	tcp = (sc->esc_txctx.cmd_and_length & E1000_TXD_CMD_TCP) != 0;
 	mss = sc->esc_txctx.tcp_seg_setup.fields.mss;
 	paylen = (sc->esc_txctx.cmd_and_length & 0x000fffff);
-	DPRINTF("tx %s segmentation offload %d+%d/%d bytes %d iovs",
+	DPRINTF("tx %s segmentation offload %d+%d/%u bytes %d iovs",
 	    tcp ? "TCP" : "UDP", hdrlen, paylen, mss, iovcnt);
 	ipid = ntohs(*(uint16_t *)&hdr[ckinfo[0].ck_start + 4]);
 	tcpseq = 0;