On 9/17/20 10:34 AM, Dr. David Alan Gilbert wrote:
* Tom Lendacky (thomas.lendacky@xxxxxxx) wrote:
From: Tom Lendacky <thomas.lendacky@xxxxxxx>
Update the sev_es_enabled() function return value to be based on the SEV
policy that has been specified. SEV-ES is enabled if SEV is enabled and
the SEV-ES policy bit is set in the policy object.
Signed-off-by: Tom Lendacky <thomas.lendacky@xxxxxxx>
---
target/i386/sev.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/target/i386/sev.c b/target/i386/sev.c
index 6ddefc65fa..bcaadaa2f9 100644
--- a/target/i386/sev.c
+++ b/target/i386/sev.c
@@ -70,6 +70,8 @@ struct SevGuestState {
#define DEFAULT_GUEST_POLICY 0x1 /* disable debug */
#define DEFAULT_SEV_DEVICE "/dev/sev"
+#define GUEST_POLICY_SEV_ES_BIT (1 << 2)
+
I'm surprised that all the policy bits aren't defined in a header somewhere.
I have another version to be issued with changes to use QemuUUID, so I can
look at moving the bits to a header.
Thanks,
Tom
But other than that,
Reviewed-by: Dr. David Alan Gilbert <dgilbert@xxxxxxxxxx>
/* SEV Information Block GUID = 00f771de-1a7e-4fcb-890e-68c77e2fb44e */
#define SEV_INFO_BLOCK_GUID \
"\xde\x71\xf7\x00\x7e\x1a\xcb\x4f\x89\x0e\x68\xc7\x7e\x2f\xb4\x4e"
@@ -375,7 +377,7 @@ sev_enabled(void)
bool
sev_es_enabled(void)
{
- return false;
+ return sev_enabled() && (sev_guest->policy & GUEST_POLICY_SEV_ES_BIT);
}
uint64_t
--
2.28.0