git: b29dc5a30cce - main - bhyve: Return void from pci_emul_alloc_bar

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Wed, 26 Aug 2026 19:31:45 UTC
The branch main has been updated by jhb:

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

commit b29dc5a30cce666896217a03a8067eba8b018eb6
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2026-08-26 19:30:17 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2026-08-26 19:30:17 +0000

    bhyve: Return void from pci_emul_alloc_bar
    
    This function never fails.
    
    Reviewed by:    bnovkov, chuck, markj
    Differential Revision:  https://reviews.freebsd.org/D58579
---
 usr.sbin/bhyve/pci_emul.c     | 22 ++++++----------------
 usr.sbin/bhyve/pci_emul.h     |  2 +-
 usr.sbin/bhyve/pci_fbuf.c     |  7 ++-----
 usr.sbin/bhyve/pci_nvme.c     |  6 +-----
 usr.sbin/bhyve/pci_passthru.c |  6 ++----
 5 files changed, 12 insertions(+), 31 deletions(-)

diff --git a/usr.sbin/bhyve/pci_emul.c b/usr.sbin/bhyve/pci_emul.c
index 538e4f284bec..7637049f0dd9 100644
--- a/usr.sbin/bhyve/pci_emul.c
+++ b/usr.sbin/bhyve/pci_emul.c
@@ -795,7 +795,7 @@ update_bar_address(struct pci_devinst *pi, uint64_t addr, int idx, int type)
 		register_bar(pi, idx);
 }
 
-int
+void
 pci_emul_alloc_bar(struct pci_devinst *pdi, int idx, enum pcibar_type type,
     uint64_t size)
 {
@@ -863,7 +863,7 @@ pci_emul_alloc_bar(struct pci_devinst *pdi, int idx, enum pcibar_type type,
 	 * ROM to handle this.
 	 */
 	if (!get_config_bool_default("pci.enable_bars", !bootrom_boot()))
-		return (0);
+		return;
 
 	/*
 	 * pci_passthru devices synchronize their physical and virtual command
@@ -886,8 +886,6 @@ pci_emul_alloc_bar(struct pci_devinst *pdi, int idx, enum pcibar_type type,
 
 	const uint16_t cmd = pci_get_cfgdata16(pdi, PCIR_COMMAND);
 	pci_set_cfgdata16(pdi, PCIR_COMMAND, cmd | enbit);
-
-	return (0);
 }
 
 static int
@@ -1027,10 +1025,7 @@ pci_emul_alloc_rom(struct pci_devinst *const pdi, const uint64_t size,
 	}
 
 	/* allocate ROM BAR */
-	const int error = pci_emul_alloc_bar(pdi, PCI_ROM_IDX, PCIBAR_ROM,
-	    rom_size);
-	if (error)
-		return error;
+	pci_emul_alloc_bar(pdi, PCI_ROM_IDX, PCIBAR_ROM, rom_size);
 
 	/* return address */
 	*addr = pci_emul_rombase + pci_emul_romoffset;
@@ -2620,14 +2615,9 @@ pci_emul_dinit(struct pci_devinst *pi, nvlist_t *nvl __unused)
 	error = pci_emul_add_msicap(pi, PCI_EMUL_MSI_MSGS);
 	assert(error == 0);
 
-	error = pci_emul_alloc_bar(pi, 0, PCIBAR_IO, DIOSZ);
-	assert(error == 0);
-
-	error = pci_emul_alloc_bar(pi, 1, PCIBAR_MEM32, DMEMSZ);
-	assert(error == 0);
-
-	error = pci_emul_alloc_bar(pi, 2, PCIBAR_MEM32, DMEMSZ);
-	assert(error == 0);
+	pci_emul_alloc_bar(pi, 0, PCIBAR_IO, DIOSZ);
+	pci_emul_alloc_bar(pi, 1, PCIBAR_MEM32, DMEMSZ);
+	pci_emul_alloc_bar(pi, 2, PCIBAR_MEM32, DMEMSZ);
 
 	return (0);
 }
diff --git a/usr.sbin/bhyve/pci_emul.h b/usr.sbin/bhyve/pci_emul.h
index 4bf617dc3219..9aeb11496943 100644
--- a/usr.sbin/bhyve/pci_emul.h
+++ b/usr.sbin/bhyve/pci_emul.h
@@ -233,7 +233,7 @@ int	init_pci(struct vmctx *ctx);
 void	pci_callback(void);
 uint32_t pci_config_read_reg(const struct pci_conf *host_conf, nvlist_t *nvl,
 	    uint32_t reg, uint8_t size, uint32_t def);
-int	pci_emul_alloc_bar(struct pci_devinst *pdi, int idx,
+void	pci_emul_alloc_bar(struct pci_devinst *pdi, int idx,
 	    enum pcibar_type type, uint64_t size);
 int 	pci_emul_alloc_rom(struct pci_devinst *const pdi, const uint64_t size,
     	    void **const addr);
diff --git a/usr.sbin/bhyve/pci_fbuf.c b/usr.sbin/bhyve/pci_fbuf.c
index 560c2bc839d6..011bb606d708 100644
--- a/usr.sbin/bhyve/pci_fbuf.c
+++ b/usr.sbin/bhyve/pci_fbuf.c
@@ -409,11 +409,8 @@ pci_fbuf_init(struct pci_devinst *pi, nvlist_t *nvl)
 		goto done;
 	}
 
-	error = pci_emul_alloc_bar(pi, 0, PCIBAR_MEM32, DMEMSZ);
-	assert(error == 0);
-
-	error = pci_emul_alloc_bar(pi, 1, PCIBAR_MEM32, FB_SIZE);
-	assert(error == 0);
+	pci_emul_alloc_bar(pi, 0, PCIBAR_MEM32, DMEMSZ);
+	pci_emul_alloc_bar(pi, 1, PCIBAR_MEM32, FB_SIZE);
 
 	error = pci_emul_add_msicap(pi, PCI_FBUF_MSI_MSGS);
 	assert(error == 0);
diff --git a/usr.sbin/bhyve/pci_nvme.c b/usr.sbin/bhyve/pci_nvme.c
index 0e20122648a6..7e6768de8550 100644
--- a/usr.sbin/bhyve/pci_nvme.c
+++ b/usr.sbin/bhyve/pci_nvme.c
@@ -3342,11 +3342,7 @@ pci_nvme_init(struct pci_devinst *pi, nvlist_t *nvl)
 
 	DPRINTF("nvme membar size: %u", pci_membar_sz);
 
-	error = pci_emul_alloc_bar(pi, 0, PCIBAR_MEM64, pci_membar_sz);
-	if (error) {
-		WPRINTF("%s pci alloc mem bar failed", __func__);
-		goto done;
-	}
+	pci_emul_alloc_bar(pi, 0, PCIBAR_MEM64, pci_membar_sz);
 
 	error = pci_emul_add_msixcap(pi, sc->max_queues + 1, NVME_MSIX_BAR);
 	if (error) {
diff --git a/usr.sbin/bhyve/pci_passthru.c b/usr.sbin/bhyve/pci_passthru.c
index 24d96764964d..740d9ad45d03 100644
--- a/usr.sbin/bhyve/pci_passthru.c
+++ b/usr.sbin/bhyve/pci_passthru.c
@@ -627,7 +627,7 @@ init_msix_table(struct passthru_softc *sc)
 static int
 cfginitbar(struct passthru_softc *sc)
 {
-	int i, error;
+	int i;
 	struct pci_devinst *pi;
 	struct pci_bar_io bar;
 	enum pcibar_type bartype;
@@ -681,9 +681,7 @@ cfginitbar(struct passthru_softc *sc)
 		sc->psc_bar[i].lobits = 0;
 
 		/* Allocate the BAR in the guest I/O or MMIO space */
-		error = pci_emul_alloc_bar(pi, i, bartype, size);
-		if (error)
-			return (-1);
+		pci_emul_alloc_bar(pi, i, bartype, size);
 
 		/* Use same lobits as physical bar */
 		lobits = (uint8_t)passthru_read_config(&sc->psc_sel,