diff options
3 files changed, 11 insertions, 10 deletions
diff --git a/QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNC/QNCSmmPeriodicTimer.c b/QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNC/QNCSmmPeriodicTimer.c index 1d1030c0ae..670ca91c5c 100644 --- a/QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNC/QNCSmmPeriodicTimer.c +++ b/QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNC/QNCSmmPeriodicTimer.c @@ -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));
}
}
diff --git a/QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNCSmm.h b/QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNCSmm.h index 892294fa71..797be16f79 100644 --- a/QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNCSmm.h +++ b/QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNCSmm.h @@ -1,7 +1,7 @@ /** @file
Prototypes and defines for the QNC SMM Dispatcher.
-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
@@ -396,8 +396,9 @@ struct _DATABASE_RECORD { // Callback function
//
EFI_SMM_HANDLER_ENTRY_POINT2 Callback;
- QNC_SMM_CONTEXT ChildContext;
- QNC_SMM_BUFFER CommBuffer;
+ QNC_SMM_CONTEXT ChildContext;
+ VOID *CallbackContext;
+ QNC_SMM_BUFFER CommBuffer;
UINTN BufferSize;
//
diff --git a/QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNCSmmCore.c b/QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNCSmmCore.c index ba8c721773..47834064ff 100644 --- a/QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNCSmmCore.c +++ b/QuarkSocPkg/QuarkNorthCluster/Smm/DxeSmm/QncSmmDispatcher/QNCSmmCore.c @@ -2,7 +2,7 @@ This driver is responsible for the registration of child drivers
and the abstraction of the QNC SMI sources.
-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
@@ -351,7 +351,8 @@ Returns: // Gather information about the registration request
//
Record->Callback = DispatchFunction;
- Record->ChildContext = *RegisterContext;
+ Record->CallbackContext = RegisterContext;
+ CopyMem (&Record->ChildContext, RegisterContext, sizeof (QNC_SMM_CONTEXT));
Qualified = QUALIFIED_PROTOCOL_FROM_GENERIC (This);
@@ -407,7 +408,7 @@ Returns: //
// Update ChildContext again as SwSmiInputValue has been changed
//
- Record->ChildContext = *RegisterContext;
+ CopyMem (&Record->ChildContext, RegisterContext, sizeof (QNC_SMM_CONTEXT));
}
//
@@ -688,7 +689,6 @@ QNCSmmCoreDispatcher ( // it supplied in registration. Simply pass back what it gave us.
//
ASSERT (RecordToExhaust->Callback != NULL);
- Context = RecordToExhaust->ChildContext;
ContextsMatch = TRUE;
}
@@ -710,7 +710,7 @@ QNCSmmCoreDispatcher ( RecordToExhaust->Callback (
(EFI_HANDLE) & RecordToExhaust->Link,
- &Context,
+ RecordToExhaust->CallbackContext,
CommunicationBuffer,
&BufferSize
);
|