X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=UefiCpuPkg%2FLibrary%2FCpuCommonFeaturesLib%2FProcTrace.c;h=b98eb116b7b6da2f51070900e9b22e278a23070c;hp=da6f6beb947793b3598a4643809a3cb7449a6709;hb=484dc05005ea80280e184b20a6b8a08636276777;hpb=3147da26350fbdffb851f00137a8d719adc31327 diff --git a/UefiCpuPkg/Library/CpuCommonFeaturesLib/ProcTrace.c b/UefiCpuPkg/Library/CpuCommonFeaturesLib/ProcTrace.c index da6f6beb94..b98eb116b7 100644 --- a/UefiCpuPkg/Library/CpuCommonFeaturesLib/ProcTrace.c +++ b/UefiCpuPkg/Library/CpuCommonFeaturesLib/ProcTrace.c @@ -199,22 +199,6 @@ ProcTraceInitialize ( ProcTraceData = (PROC_TRACE_DATA *) ConfigData; ASSERT (ProcTraceData != NULL); - MemRegionBaseAddr = 0; - FirstIn = FALSE; - - if (ProcTraceData->ThreadMemRegionTable == NULL) { - FirstIn = TRUE; - DEBUG ((DEBUG_INFO, "Initialize Processor Trace\n")); - } - - /// - /// Refer to PROC_TRACE_MEM_SIZE Table for Size Encoding - /// - MemRegionSize = (UINT32) (1 << (ProcTraceData->ProcTraceMemSize + 12)); - if (FirstIn) { - DEBUG ((DEBUG_INFO, "ProcTrace: MemSize requested: 0x%X \n", MemRegionSize)); - } - // // Clear MSR_IA32_RTIT_CTL[0] and IA32_RTIT_STS only if MSR_IA32_RTIT_CTL[0]==1b // @@ -243,6 +227,26 @@ ProcTraceInitialize ( ); } + if (!State) { + return RETURN_SUCCESS; + } + + MemRegionBaseAddr = 0; + FirstIn = FALSE; + + if (ProcTraceData->ThreadMemRegionTable == NULL) { + FirstIn = TRUE; + DEBUG ((DEBUG_INFO, "Initialize Processor Trace\n")); + } + + /// + /// Refer to PROC_TRACE_MEM_SIZE Table for Size Encoding + /// + MemRegionSize = (UINT32) (1 << (ProcTraceData->ProcTraceMemSize + 12)); + if (FirstIn) { + DEBUG ((DEBUG_INFO, "ProcTrace: MemSize requested: 0x%X \n", MemRegionSize)); + } + if (FirstIn) { // // Let BSP allocate and create the necessary memory region (Aligned to the size of @@ -459,11 +463,7 @@ ProcTraceInitialize ( CtrlReg.Bits.OS = 1; CtrlReg.Bits.User = 1; CtrlReg.Bits.BranchEn = 1; - if (!State) { - CtrlReg.Bits.TraceEn = 0; - } else { - CtrlReg.Bits.TraceEn = 1; - } + CtrlReg.Bits.TraceEn = 1; CPU_REGISTER_TABLE_WRITE64 ( ProcessorNumber, Msr,