git: b29dc5a30cce - main - bhyve: Return void from pci_emul_alloc_bar
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
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,