bhyve: Address some signed/unsigned comparison warnings

MFC after:	1 week
This commit is contained in:
Mark Johnston 2022-10-23 10:32:45 -04:00
parent cea34d0705
commit ed72168431
18 changed files with 68 additions and 56 deletions

View file

@ -1330,8 +1330,8 @@ emulate_bextr(void *vm, int vcpuid, uint64_t gpa, struct vie *vie,
mem_region_write_t memwrite __unused, void *arg)
{
uint64_t src1, src2, dst, rflags;
unsigned start, len;
int error, size;
unsigned start, len, size;
int error;
size = vie->opsize;
error = EINVAL;

View file

@ -372,7 +372,7 @@ calc_topology(void)
(uintmax_t)ncpus);
if (explicit_cpus) {
if (guest_ncpus != ncpus)
if (guest_ncpus != (int)ncpus)
errx(4, "Topology (%d sockets, %d cores, %d threads) "
"does not match %d vCPUs",
cpu_sockets, cpu_cores, cpu_threads,

View file

@ -916,10 +916,10 @@ blockif_chs(struct blockif_ctxt *bc, uint16_t *c, uint8_t *h, uint8_t *s)
sectors = bc->bc_size / bc->bc_sectsz;
/* Clamp the size to the largest possible with CHS */
if (sectors > 65535UL*16*255)
sectors = 65535UL*16*255;
if (sectors > 65535L * 16 * 255)
sectors = 65535L * 16 * 255;
if (sectors >= 65536UL*16*63) {
if (sectors >= 65536L * 16 * 63) {
secpt = 255;
heads = 16;
hcyl = sectors / secpt;

View file

@ -95,7 +95,7 @@ fwctl_send_rest(uint32_t *data, size_t len)
uint32_t w;
} u;
uint8_t *cdata;
int i;
size_t i;
cdata = (uint8_t *) data;
u.w = 0;
@ -427,7 +427,7 @@ fwctl_response(uint32_t *retval)
remlen = rinfo.resp_size - rinfo.resp_off;
dp = (uint32_t *)
((uint8_t *)rinfo.resp_biov->iov_base + rinfo.resp_off);
if (remlen >= sizeof(uint32_t)) {
if (remlen >= (ssize_t)sizeof(uint32_t)) {
*retval = *dp;
} else if (remlen > 0) {
*retval = fwctl_send_rest(dp, remlen);

View file

@ -958,7 +958,6 @@ static void
gdb_read_regs(void)
{
uint64_t regvals[nitems(gdb_regset)];
int i;
if (vm_get_register_set(ctx, cur_vcpu, nitems(gdb_regset),
gdb_regset, regvals) == -1) {
@ -966,7 +965,7 @@ gdb_read_regs(void)
return;
}
start_packet();
for (i = 0; i < nitems(regvals); i++)
for (size_t i = 0; i < nitems(regvals); i++)
append_unsigned_native(regvals[i], gdb_regsize[i]);
finish_packet();
}
@ -1706,13 +1705,16 @@ check_command(int fd)
static void
gdb_readable(int fd, enum ev_type event __unused, void *arg __unused)
{
size_t pending;
ssize_t nread;
int pending;
int n;
if (ioctl(fd, FIONREAD, &pending) == -1) {
if (ioctl(fd, FIONREAD, &n) == -1) {
warn("FIONREAD on GDB socket");
return;
}
assert(n >= 0);
pending = n;
/*
* 'pending' might be zero due to EOF. We need to call read

View file

@ -227,7 +227,7 @@ tap_init(struct net_backend *be, const char *devname,
int opt = 1;
#if defined(INET6) || defined(INET)
struct ifreq ifrq;
int i, s;
int s;
#endif
#ifndef WITHOUT_CAPSICUM
cap_rights_t rights;
@ -268,7 +268,7 @@ tap_init(struct net_backend *be, const char *devname,
}
s = -1;
for (i = 0; s == -1 && i < nitems(pf_list); i++)
for (size_t i = 0; s == -1 && i < nitems(pf_list); i++)
s = socket(pf_list[i], SOCK_DGRAM, 0);
if (s == -1) {
WPRINTF(("Could open socket"));
@ -649,7 +649,7 @@ netmap_set_vnet_hdr_len(struct net_backend *be, int vnet_hdr_len)
static int
netmap_has_vnet_hdr_len(struct net_backend *be, unsigned vnet_hdr_len)
{
int prev_hdr_len = be->be_vnet_hdr_len;
unsigned prev_hdr_len = be->be_vnet_hdr_len;
int ret;
if (vnet_hdr_len == prev_hdr_len) {

View file

@ -2442,7 +2442,7 @@ e82545_snapshot(struct vm_snapshot_meta *meta)
true, meta, ret, done);
/* L2 frame acceptance */
for (i = 0; i < nitems(sc->esc_uni); i++) {
for (i = 0; i < (int)nitems(sc->esc_uni); i++) {
SNAPSHOT_VAR_OR_LEAVE(sc->esc_uni[i].eu_valid, meta, ret, done);
SNAPSHOT_VAR_OR_LEAVE(sc->esc_uni[i].eu_addrsel, meta, ret, done);
SNAPSHOT_VAR_OR_LEAVE(sc->esc_uni[i].eu_eth, meta, ret, done);

View file

@ -455,10 +455,13 @@ pci_emul_io_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes,
uint64_t offset;
int i;
assert(port >= 0);
for (i = 0; i <= PCI_BARMAX; i++) {
if (pdi->pi_bar[i].type == PCIBAR_IO &&
port >= pdi->pi_bar[i].addr &&
port + bytes <= pdi->pi_bar[i].addr + pdi->pi_bar[i].size) {
(uint64_t)port >= pdi->pi_bar[i].addr &&
(uint64_t)port + bytes <=
pdi->pi_bar[i].addr + pdi->pi_bar[i].size) {
offset = port - pdi->pi_bar[i].addr;
if (in)
*eax = (*pe->pe_barread)(ctx, vcpu, pdi, i,
@ -2298,7 +2301,7 @@ pci_snapshot_pci_dev(struct vm_snapshot_meta *meta)
SNAPSHOT_BUF_OR_LEAVE(pi->pi_cfgdata, sizeof(pi->pi_cfgdata),
meta, ret, done);
for (i = 0; i < nitems(pi->pi_bar); i++) {
for (i = 0; i < (int)nitems(pi->pi_bar); i++) {
SNAPSHOT_VAR_OR_LEAVE(pi->pi_bar[i].type, meta, ret, done);
SNAPSHOT_VAR_OR_LEAVE(pi->pi_bar[i].size, meta, ret, done);
SNAPSHOT_VAR_OR_LEAVE(pi->pi_bar[i].addr, meta, ret, done);

View file

@ -615,7 +615,6 @@ hda_stream_start(struct hda_softc *sc, uint8_t stream_ind)
uint32_t sdctl = 0;
uint8_t strm = 0;
uint8_t dir = 0;
int i;
assert(!st->run);
@ -640,7 +639,7 @@ hda_stream_start(struct hda_softc *sc, uint8_t stream_ind)
st->bdl_cnt = bdl_cnt;
bdle = (struct hda_bdle *)bdl_vaddr;
for (i = 0; i < bdl_cnt; i++, bdle++) {
for (size_t i = 0; i < bdl_cnt; i++, bdle++) {
bdle_sz = bdle->len;
assert(!(bdle_sz % HDA_DMA_ACCESS_LEN));
@ -659,7 +658,7 @@ hda_stream_start(struct hda_softc *sc, uint8_t stream_ind)
bdle_desc->len = bdle_sz;
bdle_desc->ioc = bdle->ioc;
DPRINTF("bdle: 0x%x bdle_sz: 0x%x", i, bdle_sz);
DPRINTF("bdle: 0x%zx bdle_sz: 0x%x", i, bdle_sz);
}
sdctl = hda_get_reg_by_offset(sc, off + HDAC_SDCTL0);

View file

@ -63,14 +63,16 @@ __FBSDID("$FreeBSD$");
/* IRQ count to disable an IRQ. */
#define IRQ_DISABLED 0xff
#define NPIRQS 8
static struct pirq {
uint8_t reg;
int use_count;
int active_count;
pthread_mutex_t lock;
} pirqs[8];
} pirqs[NPIRQS];
static u_char irq_counts[16];
#define NIRQ_COUNTS 16
static u_char irq_counts[NIRQ_COUNTS];
static int pirq_cold = 1;
/*
@ -91,7 +93,7 @@ uint8_t
pirq_read(int pin)
{
assert(pin > 0 && pin <= nitems(pirqs));
assert(pin > 0 && pin <= NPIRQS);
return (pirqs[pin - 1].reg);
}
@ -100,7 +102,7 @@ pirq_write(struct vmctx *ctx, int pin, uint8_t val)
{
struct pirq *pirq;
assert(pin > 0 && pin <= nitems(pirqs));
assert(pin > 0 && pin <= NPIRQS);
pirq = &pirqs[pin - 1];
pthread_mutex_lock(&pirq->lock);
if (pirq->reg != (val & (PIRQ_DIS | PIRQ_IRQ))) {
@ -117,7 +119,7 @@ void
pci_irq_reserve(int irq)
{
assert(irq >= 0 && irq < nitems(irq_counts));
assert(irq >= 0 && irq < NIRQ_COUNTS);
assert(pirq_cold);
assert(irq_counts[irq] == 0 || irq_counts[irq] == IRQ_DISABLED);
irq_counts[irq] = IRQ_DISABLED;
@ -127,7 +129,7 @@ void
pci_irq_use(int irq)
{
assert(irq >= 0 && irq < nitems(irq_counts));
assert(irq >= 0 && irq < NIRQ_COUNTS);
assert(pirq_cold);
assert(irq_counts[irq] != IRQ_DISABLED);
irq_counts[irq]++;
@ -138,13 +140,13 @@ pci_irq_init(struct vmctx *ctx __unused)
{
int i;
for (i = 0; i < nitems(pirqs); i++) {
for (i = 0; i < NPIRQS; i++) {
pirqs[i].reg = PIRQ_DIS;
pirqs[i].use_count = 0;
pirqs[i].active_count = 0;
pthread_mutex_init(&pirqs[i].lock, NULL);
}
for (i = 0; i < nitems(irq_counts); i++) {
for (i = 0; i < NIRQ_COUNTS; i++) {
if (IRQ_PERMITTED(i))
irq_counts[i] = 0;
else
@ -156,10 +158,12 @@ void
pci_irq_assert(struct pci_devinst *pi)
{
struct pirq *pirq;
int pin;
if (pi->pi_lintr.pirq_pin > 0) {
assert(pi->pi_lintr.pirq_pin <= nitems(pirqs));
pirq = &pirqs[pi->pi_lintr.pirq_pin - 1];
pin = pi->pi_lintr.pirq_pin;
if (pin > 0) {
assert(pin <= NPIRQS);
pirq = &pirqs[pin - 1];
pthread_mutex_lock(&pirq->lock);
pirq->active_count++;
if (pirq->active_count == 1 && pirq_valid_irq(pirq->reg)) {
@ -177,10 +181,12 @@ void
pci_irq_deassert(struct pci_devinst *pi)
{
struct pirq *pirq;
int pin;
if (pi->pi_lintr.pirq_pin > 0) {
assert(pi->pi_lintr.pirq_pin <= nitems(pirqs));
pirq = &pirqs[pi->pi_lintr.pirq_pin - 1];
pin = pi->pi_lintr.pirq_pin;
if (pin > 0) {
assert(pin <= NPIRQS);
pirq = &pirqs[pin - 1];
pthread_mutex_lock(&pirq->lock);
pirq->active_count--;
if (pirq->active_count == 0 && pirq_valid_irq(pirq->reg)) {
@ -209,7 +215,7 @@ pirq_alloc_pin(struct pci_devinst *pi)
/* Find the least-used PIRQ pin. */
best_pin = 0;
best_count = pirqs[0].use_count;
for (pin = 1; pin < nitems(pirqs); pin++) {
for (pin = 1; pin < NPIRQS; pin++) {
if (pirqs[pin].use_count < best_count) {
best_pin = pin;
best_count = pirqs[pin].use_count;
@ -222,7 +228,7 @@ pirq_alloc_pin(struct pci_devinst *pi)
if (pirqs[best_pin].reg == PIRQ_DIS) {
best_irq = -1;
best_count = 0;
for (irq = 0; irq < nitems(irq_counts); irq++) {
for (irq = 0; irq < NIRQ_COUNTS; irq++) {
if (irq_counts[irq] == IRQ_DISABLED)
continue;
if (best_irq == -1 || irq_counts[irq] < best_count) {
@ -242,7 +248,7 @@ pirq_alloc_pin(struct pci_devinst *pi)
int
pirq_irq(int pin)
{
assert(pin > 0 && pin <= nitems(pirqs));
assert(pin > 0 && pin <= NPIRQS);
return (pirqs[pin - 1].reg & PIRQ_IRQ);
}
@ -255,7 +261,7 @@ pirq_dsdt(void)
int irq, pin;
irq_prs = NULL;
for (irq = 0; irq < nitems(irq_counts); irq++) {
for (irq = 0; irq < NIRQ_COUNTS; irq++) {
if (!IRQ_PERMITTED(irq))
continue;
if (irq_prs == NULL)
@ -294,7 +300,7 @@ pirq_dsdt(void)
dsdt_line(" Return (0x01)");
dsdt_line("}");
for (pin = 0; pin < nitems(pirqs); pin++) {
for (pin = 0; pin < NPIRQS; pin++) {
dsdt_line("");
dsdt_line("Device (LNK%c)", 'A' + pin);
dsdt_line("{");

View file

@ -3272,7 +3272,7 @@ pci_nvme_init(struct vmctx *ctx __unused, struct pci_devinst *pi, nvlist_t *nvl)
STAILQ_INIT(&sc->ioreqs_free);
sc->ioreqs = calloc(sc->ioslots, sizeof(struct pci_nvme_ioreq));
for (int i = 0; i < sc->ioslots; i++) {
for (uint32_t i = 0; i < sc->ioslots; i++) {
STAILQ_INSERT_TAIL(&sc->ioreqs_free, &sc->ioreqs[i], link);
}

View file

@ -183,7 +183,7 @@ write_config(const struct pcisel *sel, long reg, int width, uint32_t data)
static int
passthru_add_msicap(struct pci_devinst *pi, int msgnum, int nextptr)
{
int capoff, i;
int capoff;
struct msicap msicap;
u_char *capdata;
@ -197,7 +197,7 @@ passthru_add_msicap(struct pci_devinst *pi, int msgnum, int nextptr)
*/
capoff = 256 - roundup(sizeof(msicap), 4);
capdata = (u_char *)&msicap;
for (i = 0; i < sizeof(msicap); i++)
for (size_t i = 0; i < sizeof(msicap); i++)
pci_set_cfgdata8(pi, capoff + i, capdata[i]);
return (capoff);

View file

@ -421,7 +421,7 @@ pci_vtinput_cfgread(void *vsc, int offset, int size, uint32_t *retval)
struct pci_vtinput_softc *sc = vsc;
/* check for valid offset and size */
if (offset + size > sizeof(struct vtinput_config)) {
if (offset + size > (int)sizeof(struct vtinput_config)) {
WPRINTF(("%s: read to invalid offset/size %d/%d", __func__,
offset, size));
memset(retval, 0, size);

View file

@ -650,8 +650,7 @@ pci_xhci_init_ep(struct pci_xhci_dev_emu *dev, int epid)
struct xhci_dev_ctx *dev_ctx;
struct pci_xhci_dev_ep *devep;
struct xhci_endp_ctx *ep_ctx;
uint32_t pstreams;
int i;
uint32_t i, pstreams;
dev_ctx = dev->dev_ctx;
ep_ctx = &dev_ctx->ctx_ep[epid];
@ -2107,7 +2106,7 @@ pci_xhci_rtsregs_write(struct pci_xhci_softc *sc, uint64_t offset,
if (rts->er_events_cnt > 0) {
uint64_t erdp;
uint32_t erdp_i;
int erdp_i;
erdp = rts->intrreg.erdp & ~0xF;
erdp_i = (erdp - rts->erstba_p->qwEvrsTablePtr) /

View file

@ -450,7 +450,8 @@ lookup_struct(enum snapshot_req struct_id, struct restore_state *rstate,
JSON_GET_INT_OR_RETURN(JSON_FILE_OFFSET_KEY, obj,
&file_offset, NULL);
assert(file_offset >= 0);
assert(file_offset + size <= rstate->kdata_len);
assert((uint64_t)file_offset + size <=
rstate->kdata_len);
*struct_size = (size_t)size;
return ((uint8_t *)rstate->kdata_map + file_offset);
@ -479,7 +480,7 @@ lookup_check_dev(const char *dev_name, struct restore_state *rstate,
JSON_GET_INT_OR_RETURN(JSON_FILE_OFFSET_KEY, obj,
&file_offset, NULL);
assert(file_offset >= 0);
assert(file_offset + size <= rstate->kdata_len);
assert((uint64_t)file_offset + size <= rstate->kdata_len);
*data_size = (size_t)size;
return ((uint8_t *)rstate->kdata_map + file_offset);
@ -1046,8 +1047,9 @@ vm_snapshot_kern_struct(int data_fd, xo_handle_t *xop, const char *array_key,
data_size = vm_get_snapshot_size(meta);
/* XXX-MJ no handling for short writes. */
write_cnt = write(data_fd, meta->buffer.buf_start, data_size);
if (write_cnt != data_size) {
if (write_cnt < 0 || (size_t)write_cnt != data_size) {
perror("Failed to write all snapshotted data.");
ret = -1;
goto done;
@ -1138,13 +1140,14 @@ static int
vm_snapshot_dev_write_data(int data_fd, xo_handle_t *xop, const char *array_key,
struct vm_snapshot_meta *meta, off_t *offset)
{
int ret;
ssize_t ret;
size_t data_size;
data_size = vm_get_snapshot_size(meta);
/* XXX-MJ no handling for short writes. */
ret = write(data_fd, meta->buffer.buf_start, data_size);
if (ret != data_size) {
if (ret < 0 || (size_t)ret != data_size) {
perror("Failed to write all snapshotted data.");
return (-1);
}

View file

@ -774,7 +774,7 @@ vmexit_task_switch(struct vmctx *ctx, struct vm_exit *vmexit, int *pvcpu)
minlimit = 0;
assert(minlimit > 0);
if (nt.limit < minlimit) {
if (nt.limit < (unsigned int)minlimit) {
sel_exception(ctx, vcpu, IDT_TS, nt_sel, ext);
goto done;
}

View file

@ -616,7 +616,7 @@ int
uart_legacy_alloc(int which, int *baseaddr, int *irq)
{
if (which < 0 || which >= UART_NLDEVS || uart_lres[which].inuse)
if (which < 0 || which >= (int)UART_NLDEVS || uart_lres[which].inuse)
return (-1);
uart_lres[which].inuse = true;

View file

@ -773,7 +773,7 @@ vi_pci_write(struct vmctx *ctx __unused, int vcpu __unused,
vs->vs_curq = value;
break;
case VIRTIO_PCI_QUEUE_NOTIFY:
if (value >= vc->vc_nvq) {
if (value >= (unsigned int)vc->vc_nvq) {
EPRINTLN("%s: queue %d notify out of range",
name, (int)value);
goto done;