]> git.proxmox.com Git - mirror_edk2.git/commit
UefiCpuPkg/PiSmmCpuDxeSmm: Remove dependence between APs
authorEric Dong <eric.dong@intel.com>
Mon, 23 Dec 2019 06:15:04 +0000 (14:15 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Tue, 24 Dec 2019 03:59:14 +0000 (03:59 +0000)
commita457823f27e5410d00c1f47b5f841b5a88a926e4
tree8c342a0dfe0a195f497cea57f9fda2e0175601d5
parentcaa917491a4bfb295d2afad86e4c34fd48e1f7b5
UefiCpuPkg/PiSmmCpuDxeSmm: Remove dependence between APs

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2268

In current implementation, when check whether APs called by StartUpAllAPs
or StartUpThisAp, it checks the Tokens value used by other APs. Also the AP
will update the Token value for itself if its task finished. In this
case, the potential race condition  issues happens for the tokens.
Because of this, system may trig ASSERT during cycling test.

This change enhance the code logic, add new attributes for the token to
remove the reference for the tokens belongs to other APs.

Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Eric Dong <eric.dong@intel.com>
UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c
UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h