Some hypervisors (such as Hertzner) allow msr read of DE_CFG (which does
authorderaadt <deraadt@openbsd.org>
Tue, 25 Jul 2023 04:42:00 +0000 (04:42 +0000)
committerderaadt <deraadt@openbsd.org>
Tue, 25 Jul 2023 04:42:00 +0000 (04:42 +0000)
commit8d0e9f7b2f4ccacce392e9c2ada9fb87c63f1ccb
treebae8ed30f20e9ad8f369c132f5925270fd54ed51
parentfdfcabc0334f38f9bec0fcce8a6fc280a7966fe0
Some hypervisors (such as Hertzner) allow msr read of DE_CFG (which does
not indicate bit 9 set, but they could have a firmware fix) but then block
a msr write to bit 9 (which disables enough AVX optimizations
to prevent the exfiltration of data), with a fault.  So let's also check
the HV bit before we decide to modify the bit.  hypervisors are expected
to set that bit. tested by lucas at sexy dot is.
with jsg, ok mlarkin
sys/arch/amd64/amd64/cpu.c
sys/arch/i386/i386/machdep.c