UefiCpuPkg/PiSmmCpuDxeSmm: Using MSRs semaphores in aligned buffer

Update MSRs semaphores to the ones in allocated aligned semaphores
buffer. If MSRs semaphores is not enough, allocate one page more.

Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
This commit is contained in:
Jeff Fan
2016-03-22 10:42:12 +08:00
committed by Michael Kinney
parent 695e62d141
commit dc99315b87
2 changed files with 30 additions and 6 deletions

View File

@@ -326,7 +326,7 @@ typedef struct {
#define MSR_SPIN_LOCK_INIT_NUM 15
typedef struct {
SPIN_LOCK SpinLock;
SPIN_LOCK *SpinLock;
UINT32 MsrIndex;
} MP_MSR_LOCK;
@@ -409,6 +409,8 @@ extern UINTN mSmmStackArrayEnd;
extern UINTN mSmmStackSize;
extern EFI_SMM_CPU_SERVICE_PROTOCOL mSmmCpuService;
extern IA32_DESCRIPTOR gcSmiInitGdtr;
extern SMM_CPU_SEMAPHORES mSmmCpuSemaphores;
extern UINTN mSemaphoreSize;
extern SPIN_LOCK *mPFLock;
extern SPIN_LOCK *mConfigSmmCodeAccessCheckLock;