Page MenuHomeFreeBSD

bhyve: protect MMIO mapped BDSM register
ClosedPublic

Authored by corvink on May 24 2024, 11:35 AM.
Tags
None
Referenced Files
F160289106: D45342.id157504.diff
Mon, Jun 22, 11:30 PM
F160287416: D45342.id139039.diff
Mon, Jun 22, 11:14 PM
F160280275: D45342.diff
Mon, Jun 22, 9:29 PM
Unknown Object (File)
Mon, Jun 22, 4:17 AM
Unknown Object (File)
Mon, Jun 22, 1:14 AM
Unknown Object (File)
Sun, Jun 21, 7:17 AM
Unknown Object (File)
Sat, Jun 20, 10:17 AM
Unknown Object (File)
Sat, Jun 20, 10:07 AM
Subscribers

Details

Summary

The Windows graphics driver reads the value of the BDSM register from MMIO
space. This value makes no sense in our virtual environment because it's a host
address. Therefore, we have to trap and emulate it.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 65117
Build 62000: arc lint + arc unit

Event Timeline

usr.sbin/bhyve/amd64/pci_gvt-d.c
65

The indentation of the case labels should be the same as the indentation of switch. .clang-format has IndentCaseLabels: false for this.

89

Is it correct that the offset is the same for both writes?

  • fix style issue
  • use correct offset for 64 bit BDSM read/writes
  • use uint64_t instead of vm_* types
  • account for new handler interface (including baridx)
jhb added inline comments.
usr.sbin/bhyve/amd64/pci_gvt-d.c
124

Maybe add a #define for this magic number to document it a bit more?

This revision is now accepted and ready to land.Jun 30 2025, 6:32 PM
This revision was automatically updated to reflect the committed changes.