QuarkSocPkg/QncSmmDispatcher: Fix context passed to SMI handlers
https://bugzilla.tianocore.org/show_bug.cgi?id=136 1) Add CallbackContext field to the DATABASE_RECORD structure that is set to the RegisterContent value passed to QNCSmmCoreRegister(). This is the content that must be passed to the SMI handler when its source is triggered. 2) Update usage of ChildContext field in the DATABASE_RECOD to use CopyMem() instead of structure assignments to avoid compiler use of memcpy() intrinsics This issue was reproduced using the unit test at: https://github.com/mdkinney/edk2/tree/Bug51/Reproduce An ASSERT() is generated the first time the periodic SMI handler is triggered. After applying this patch, the DEBUG() messages from the periodic SMI handler in this unit test are generated. Cc: Kelly Steele <kelly.steele@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Kelly Steele <kelly.steele@intel.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
/** @file
|
||||
File to contain all the hardware specific stuff for the Periodical Timer dispatch protocol.
|
||||
|
||||
Copyright (c) 2013-2015 Intel Corporation.
|
||||
Copyright (c) 2013-2016 Intel Corporation.
|
||||
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
@@ -177,7 +177,7 @@ PeriodicTimerGetContext (
|
||||
// Update the elapsed time w/ the data from our tables
|
||||
//
|
||||
Record->CommBuffer.PeriodicTimer.ElapsedTime += TimerInterval->Interval;
|
||||
*HwContext = Record->ChildContext;
|
||||
CopyMem (HwContext, &Record->ChildContext, sizeof (QNC_SMM_CONTEXT));
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user