Page MenuHomeFreeBSD

bhyve/virtio: return 0xFF when accessing unused PCI space
AbandonedPublic

Authored by corvink on Apr 28 2021, 9:28 AM.
Tags
Referenced Files
Unknown Object (File)
Dec 28 2025, 6:52 AM
Unknown Object (File)
Dec 24 2025, 6:31 PM
Unknown Object (File)
Nov 19 2025, 1:23 PM
Unknown Object (File)
Nov 16 2025, 5:26 AM
Unknown Object (File)
Nov 16 2025, 1:43 AM
Unknown Object (File)
Nov 5 2025, 3:42 AM
Unknown Object (File)
Oct 31 2025, 1:25 AM
Unknown Object (File)
Oct 27 2025, 5:08 AM
Subscribers

Details

Reviewers
None
Group Reviewers
bhyve
Summary

VirtIO devices allocate an IO-BAR. The size of this BAR has to be a
power of two. If that's not the case, pci_emul will adjust the
size to a power of two.
VirtIO space has a size of 0x18 bytes. That's no power of two. For
that reason, pci_emul will adjust the size. If a VirtIO device
only uses the default register, it has no cfgread/cfgwrite
handler. Due to the size adjustment, it's possible that bhyve
calls this unimplemented handler. To avoid a segmentation fault,
check if a handler exists. If the handler does not exist, return
0xFF.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped