summaryrefslogtreecommitdiff
path: root/src/security/intel/txt/getsec_enteraccs.S
diff options
context:
space:
mode:
Diffstat (limited to 'src/security/intel/txt/getsec_enteraccs.S')
-rw-r--r--src/security/intel/txt/getsec_enteraccs.S6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/security/intel/txt/getsec_enteraccs.S b/src/security/intel/txt/getsec_enteraccs.S
index 09f9f389e6..cbb24b6511 100644
--- a/src/security/intel/txt/getsec_enteraccs.S
+++ b/src/security/intel/txt/getsec_enteraccs.S
@@ -227,6 +227,10 @@ cond_clear_var_mtrrs:
movd %esp, %xmm0
movd %ebp, %xmm1
+ /* Backup %gs used by CPU_INFO_V2 */
+ movl %gs, %eax
+ movd %eax, %xmm2
+
/*
* Get function arguments.
* It's important to pass the exact ACM size as it's used by getsec to verify
@@ -261,6 +265,8 @@ cond_clear_var_mtrrs:
movl %eax, %es
movl %eax, %ss
movl %eax, %fs
+ /* Restore %gs used by CPU_INFO_V2 */
+ movd %xmm2, %eax
movl %eax, %gs
/* Disable cache */