Page MenuHomeFreeBSD

bhyve: read OpRegion address and size for GVT-d
ClosedPublic

Authored by corvink on May 10 2023, 12:45 PM.
Tags
None
Referenced Files
F102553053: D40040.diff
Wed, Nov 13, 11:25 PM
Unknown Object (File)
Sat, Oct 26, 1:20 AM
Unknown Object (File)
Fri, Oct 25, 6:43 PM
Unknown Object (File)
Sep 24 2024, 5:51 AM
Unknown Object (File)
Sep 24 2024, 3:06 AM
Unknown Object (File)
Sep 21 2024, 12:56 AM
Unknown Object (File)
Sep 18 2024, 10:17 PM
Unknown Object (File)
Sep 17 2024, 8:36 PM
Subscribers

Details

Summary

The OpRegion provides some configuration bits and ACPI methods used by
some Intel drivers. The guest needs access to it. In the first step,
we're reading it's address and size.

Diff Detail

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

Event Timeline

usr.sbin/bhyve/pci_gvt-d.c
167

It can't be O_RDONLY?

200

memfd is leaked here, no? We should be able to close it after mapping the header, I believe. In general we don't want to leave a fd for /dev/mem lying around.

  • don't leak memfd
  • open memfd readonly
usr.sbin/bhyve/pci_gvt-d.c
185
187
189

The header is guaranteed to be page-aligned?

usr.sbin/bhyve/pci_gvt-d.c
189

No, it doesn't have to be page aligned. On my systems it has an offset of +0x18 to page boundary. Don't know why.

  • don't return errno
  • make use of warn instead of warnx

@jhb @markj Any additional comments?

This revision is now accepted and ready to land.Jun 7 2023, 6:35 PM