diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiEntry.nasm b/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiEntry.nasm index d17b1a7dd4..87a31b71a9 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiEntry.nasm +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmiEntry.nasm @@ -237,7 +237,9 @@ CetInterruptDone: bts ecx, 16 ; set WP mov cr0, ecx - mov eax, 0x668 | CR4_CET + ; set CR4.CET bit for enable CET + mov eax, cr4 + bts eax, CR4_CET_BIT mov cr4, eax setssbsy @@ -264,8 +266,10 @@ CetDone: cmp al, 0 jz CetDone2 - mov eax, 0x668 - mov cr4, eax ; disable CET + ; clear CR4.CET bit for disable CET + mov eax, cr4 + btr eax, CR4_CET_BIT + mov cr4, eax mov ecx, MSR_IA32_PL0_SSP pop eax diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiEntry.nasm b/UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiEntry.nasm index f72013a718..e7c51e6950 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiEntry.nasm +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmiEntry.nasm @@ -263,7 +263,9 @@ CetInterruptDone: bts ecx, 16 ; set WP mov cr0, rcx - mov eax, 0x668 | CR4_CET + ; set CR4.CET bit for enable CET + mov rax, cr4 + bts rax, CR4_CET_BIT mov cr4, rax setssbsy @@ -308,8 +310,10 @@ mCetSupportedAbsAddr: cmp al, 0 jz CetDone2 - mov eax, 0x668 - mov cr4, rax ; disable CET + ; clear CR4.CET bit for disable CET + mov rax, cr4 + btr rax, CR4_CET_BIT + mov cr4, rax mov ecx, MSR_IA32_INTERRUPT_SSP_TABLE_ADDR pop rax