Hi Abner, > If we use PCD here, then we have to also update CreateEventEx in the > RedfishFeatureCoreEntryPoint. Create the event using > REDFISH_FEATURE_CORE_TPL.
Yes, I also modify RedfishFeatureCoreEntryPoint in below together. > } > > /** > @@ -670,7 +682,7 @@ RedfishFeatureCoreEntryPoint ( > > Status = gBS->CreateEventEx ( > EVT_NOTIFY_SIGNAL, > - TPL_CALLBACK, > + REDFISH_FEATURE_CORE_TPL, > RedfishFeatureDriverStartup, > (CONST VOID *)&mFeatureDriverStartupContext, > EventGuid, Regards, Nickle > -----Original Message----- > From: Chang, Abner <abner.ch...@amd.com> > Sent: Wednesday, December 6, 2023 8:08 PM > To: Nickle Wang <nick...@nvidia.com>; devel@edk2.groups.io > Cc: Igor Kulchytskyy <ig...@ami.com>; Nick Ramirez <nrami...@nvidia.com> > Subject: RE: [edk2-redfish-client][PATCH] > RedfishClientPkg/RedfishFeatureCoreDxe: fix Redfish event issue. > > External email: Use caution opening links or attachments > > > [AMD Official Use Only - General] > > Hi Nickle, one comment below. > > > -----Original Message----- > > From: Nickle Wang <nick...@nvidia.com> > > Sent: Wednesday, December 6, 2023 4:57 PM > > To: devel@edk2.groups.io > > Cc: Chang, Abner <abner.ch...@amd.com>; Igor Kulchytskyy > > <ig...@ami.com>; Nick Ramirez <nrami...@nvidia.com> > > Subject: [edk2-redfish-client][PATCH] > > RedfishClientPkg/RedfishFeatureCoreDxe: fix Redfish event issue. > > > > Caution: This message originated from an External Source. Use proper > > caution when opening attachments, clicking links, or responding. > > > > > > RedfishFeatureDriverStartup is callback function at TPL_CALLBACK > > level. In this function, Redfish events are signaled. However, Redfish > > events are created in TPL_CALLBACK level too. As the result, Redfish > > events cannot be invoked in desired sequence. Decrease the TPL to > > TPL_APPLICATION level inside RedfishFeatureDriverStartup and restore > > it to TPL_CALLBACK level before leaving this function. Now, Redfish > > events are called in correct sequence. > > > > Signed-off-by: Nickle Wang <nick...@nvidia.com> > > Cc: Abner Chang <abner.ch...@amd.com> > > Cc: Igor Kulchytskyy <ig...@ami.com> > > Cc: Nick Ramirez <nrami...@nvidia.com> > > --- > > .../RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h | 1 + > > .../RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c | 14 +++++++++++++- > > 2 files changed, 14 insertions(+), 1 deletion(-) > > > > diff --git > > a/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h > > b/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h > > index acefa41b..de08d79d 100644 > > --- a/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h > > +++ b/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.h > > @@ -33,6 +33,7 @@ > > #define NodeIsCollectionLeftBracket L'{' > > #define NodeIsCollectionRightBracket L'}' > > #define NodeIsCollectionSymbol L"/{}" > > +#define REDFISH_FEATURE_CORE_TPL TPL_CALLBACK > > > > typedef struct _REDFISH_FEATURE_INTERNAL_DATA > > REDFISH_FEATURE_INTERNAL_DATA; struct > _REDFISH_FEATURE_INTERNAL_DATA > > { diff --git > > a/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c > > b/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c > > index f3188ddf..c0c3ec47 100644 > > --- a/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c > > +++ b/RedfishClientPkg/RedfishFeatureCoreDxe/RedfishFeatureCoreDxe.c > > @@ -272,6 +272,13 @@ RedfishFeatureDriverStartup ( > > return; > > } > > > > + // > > + // Lower the TPL to TPL_APPLICATION so that // Redfish event and > > + report status code can be // triggered // gBS->RestoreTPL > > + (TPL_APPLICATION); > > + > > // > > // Reset PcdRedfishSystemRebootRequired flag > > // > > @@ -321,6 +328,11 @@ RedfishFeatureDriverStartup ( > > gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL); > > CpuDeadLoop (); > > } > > + > > + // > > + // Restore to the TPL where this callback handler is called. > > + // > > + gBS->RaiseTPL (REDFISH_FEATURE_CORE_TPL); > If we use PCD here, then we have to also update CreateEventEx in the > RedfishFeatureCoreEntryPoint. Create the event using > REDFISH_FEATURE_CORE_TPL. > > Abner > > > > } > > > > /** > > @@ -670,7 +682,7 @@ RedfishFeatureCoreEntryPoint ( > > > > Status = gBS->CreateEventEx ( > > EVT_NOTIFY_SIGNAL, > > - TPL_CALLBACK, > > + REDFISH_FEATURE_CORE_TPL, > > RedfishFeatureDriverStartup, > > (CONST VOID *)&mFeatureDriverStartupContext, > > EventGuid, > > -- > > 2.17.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#112142): https://edk2.groups.io/g/devel/message/112142 Mute This Topic: https://groups.io/mt/103009658/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-