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, May 13, 5:10 PM
Unknown Object (File)
Mon, May 13, 5:10 PM
Unknown Object (File)
Mon, May 13, 5:10 PM
Unknown Object (File)
Mon, May 13, 5:10 PM
Unknown Object (File)
Mon, May 13, 5:10 PM
Unknown Object (File)
Fri, May 10, 7:16 PM
Unknown Object (File)
Thu, May 2, 4:10 AM
Unknown Object (File)
Tue, Apr 23, 8:12 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 Not Applicable
Unit
Tests Not Applicable

Event Timeline

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

It can't be O_RDONLY?

224

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
209
211
213

The header is guaranteed to be page-aligned?

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

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