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
Unknown Object (File)
Mon, Jan 27, 5:00 PM
Unknown Object (File)
Sun, Jan 26, 6:01 PM
Unknown Object (File)
Sun, Jan 26, 5:53 PM
Unknown Object (File)
Sun, Jan 26, 1:33 PM
Unknown Object (File)
Thu, Jan 23, 6:37 PM
Unknown Object (File)
Sat, Jan 18, 10:30 AM
Unknown Object (File)
Jan 2 2025, 10:08 PM
Unknown Object (File)
Dec 13 2024, 2:50 AM
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 51414
Build 48305: arc lint + arc unit

Event Timeline

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

It can't be O_RDONLY?

93

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
78
80
82

The header is guaranteed to be page-aligned?

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

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