bhyve: pass address of OpRegion to the guest

Don't allow access to the physical ASLS register. It contains a host
address which is meaningless for the guest. Additionally, it allows the
guest to safely rewrite this register.

This is the last commit required for GVT-d. Nevertheless, it might not
work due to missing firmware support.

MFC after:		1 week
Sponsored by:		Beckhoff Automation GmbH & Co. KG
Differential Revision:	https://reviews.freebsd.org/D26209
This commit is contained in:
Corvin Köhne 2023-05-10 13:44:28 +02:00
parent 1115cdcf7a
commit 71fb2dcb00
No known key found for this signature in database
GPG Key ID: D854DA56315E026A

View File

@ -256,7 +256,10 @@ gvt_d_setup_opregion(struct pci_devinst *const pi)
memcpy(opregion->gva, opregion->hva, opregion->len);
return (0);
pci_set_cfgdata32(pi, PCIR_ASLS_CTL, opregion->gpa);
return (set_pcir_handler(sc, PCIR_ASLS_CTL, 4, passthru_cfgread_emulate,
passthru_cfgwrite_emulate));
}
static int