* [PATCH 0/2] Update RegisterCpuInterruptHandler return status @ 2016-11-16 14:33 Jeff Fan 2016-11-16 14:33 ` [PATCH 1/2] MdeModulePkg/CpuExceptionHanderLibNull: RegisterCpuInterruptHandler() Jeff Fan 2016-11-16 14:33 ` [PATCH 2/2] MdeModulePkg/PiSmmCpuDxeSmm: Check RegisterCpuInterruptHandler status Jeff Fan 0 siblings, 2 replies; 6+ messages in thread From: Jeff Fan @ 2016-11-16 14:33 UTC (permalink / raw) To: edk2-devel; +Cc: Feng Tian, Michael D Kinney Updated RegisterCpuInterruptHandler() in CpuExceptionHandlerLib NULL instance to return EFI_UNSUPPORTED instead of EFI_SUCCESS. https://bugzilla.tianocore.org/show_bug.cgi?id=199 Cc: Feng Tian <feng.tian@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jeff Fan <jeff.fan@intel.com> Jeff Fan (2): MdeModulePkg/CpuExceptionHanderLibNull: RegisterCpuInterruptHandler() MdeModulePkg/PiSmmCpuDxeSmm: Check RegisterCpuInterruptHandler status .../Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.c | 4 ++-- UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c | 4 +++- UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c | 5 ++++- UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c | 4 +++- 4 files changed, 12 insertions(+), 5 deletions(-) -- 2.9.3.windows.2 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] MdeModulePkg/CpuExceptionHanderLibNull: RegisterCpuInterruptHandler() 2016-11-16 14:33 [PATCH 0/2] Update RegisterCpuInterruptHandler return status Jeff Fan @ 2016-11-16 14:33 ` Jeff Fan 2016-11-16 14:33 ` [PATCH 2/2] MdeModulePkg/PiSmmCpuDxeSmm: Check RegisterCpuInterruptHandler status Jeff Fan 1 sibling, 0 replies; 6+ messages in thread From: Jeff Fan @ 2016-11-16 14:33 UTC (permalink / raw) To: edk2-devel; +Cc: Feng Tian, Michael D Kinney Current CpuExceptionHanderLibNull instance returns EFI_SUCCESS for all three services. If platform does not want to hook the Exception vector for some modules (For example DxeCore), it could select this NULL instance in DSC file for those module. But some modules that want to consume RegisterCpuInterruptHandler() cannot use NULL instance. If platform does not select the correct library instance, it will does work. But the caller does not recognize it. This update is to return EFI_UNSUPPORTED on RegisterCpuInterruptHandler() in NULL instance instead of return EFI_SUCCESS. Once platform selects this NULL instance, the caller could know it from return status. Cc: Feng Tian <feng.tian@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jeff Fan <jeff.fan@intel.com> --- .../Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.c b/MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.c index 2fea24a..68ee9a9 100644 --- a/MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.c +++ b/MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.c @@ -1,7 +1,7 @@ /** @file CPU Exception Handler library implementition with empty functions. - Copyright (c) 2012 - 2013, Intel Corporation. All rights reserved.<BR> + Copyright (c) 2012 - 2016, Intel Corporation. All rights reserved.<BR> This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at @@ -94,6 +94,6 @@ RegisterCpuInterruptHandler ( IN EFI_CPU_INTERRUPT_HANDLER InterruptHandler ) { - return EFI_SUCCESS; + return EFI_UNSUPPORTED; } -- 2.9.3.windows.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] MdeModulePkg/PiSmmCpuDxeSmm: Check RegisterCpuInterruptHandler status 2016-11-16 14:33 [PATCH 0/2] Update RegisterCpuInterruptHandler return status Jeff Fan 2016-11-16 14:33 ` [PATCH 1/2] MdeModulePkg/CpuExceptionHanderLibNull: RegisterCpuInterruptHandler() Jeff Fan @ 2016-11-16 14:33 ` Jeff Fan 2016-11-16 16:28 ` Kinney, Michael D 1 sibling, 1 reply; 6+ messages in thread From: Jeff Fan @ 2016-11-16 14:33 UTC (permalink / raw) To: edk2-devel; +Cc: Feng Tian, Michael D Kinney Once platform selects the incorrect instance, the caller could know it from return status and ASSERT(). Cc: Feng Tian <feng.tian@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jeff Fan <jeff.fan@intel.com> --- UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c | 4 +++- UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c | 5 ++++- UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c | 4 +++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c b/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c index a871bef..f2e2ceb 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c @@ -27,6 +27,7 @@ SmmInitPageTable ( { UINTN PageFaultHandlerHookAddress; IA32_IDT_GATE_DESCRIPTOR *IdtEntry; + EFI_STATUS Status; // // Initialize spin lock @@ -49,7 +50,8 @@ SmmInitPageTable ( // // Register SMM Page Fault Handler // - SmmRegisterExceptionHandler (&mSmmCpuService, EXCEPT_IA32_PAGE_FAULT, SmiPFHandler); + Status = SmmRegisterExceptionHandler (&mSmmCpuService, EXCEPT_IA32_PAGE_FAULT, SmiPFHandler); + ASSERT_EFI_ERROR (Status); } // diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c b/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c index 329574e..350a6a2 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c @@ -1384,5 +1384,8 @@ InitIdtr ( VOID ) { - SmmRegisterExceptionHandler (&mSmmCpuService, EXCEPT_IA32_DEBUG, DebugExceptionHandler); + EFI_STATUS Status; + + Status = SmmRegisterExceptionHandler (&mSmmCpuService, EXCEPT_IA32_DEBUG, DebugExceptionHandler); + ASSERT_EFI_ERROR (Status); } diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c b/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c index 9cee784..c49fb26 100644 --- a/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c @@ -102,6 +102,7 @@ SmmInitPageTable ( UINTN Index; UINTN PageFaultHandlerHookAddress; IA32_IDT_GATE_DESCRIPTOR *IdtEntry; + EFI_STATUS Status; // // Initialize spin lock @@ -160,7 +161,8 @@ SmmInitPageTable ( // // Register Smm Page Fault Handler // - SmmRegisterExceptionHandler (&mSmmCpuService, EXCEPT_IA32_PAGE_FAULT, SmiPFHandler); + Status = SmmRegisterExceptionHandler (&mSmmCpuService, EXCEPT_IA32_PAGE_FAULT, SmiPFHandler); + ASSERT_EFI_ERROR (Status); } // -- 2.9.3.windows.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] MdeModulePkg/PiSmmCpuDxeSmm: Check RegisterCpuInterruptHandler status 2016-11-16 14:33 ` [PATCH 2/2] MdeModulePkg/PiSmmCpuDxeSmm: Check RegisterCpuInterruptHandler status Jeff Fan @ 2016-11-16 16:28 ` Kinney, Michael D 2016-11-17 2:54 ` Fan, Jeff 0 siblings, 1 reply; 6+ messages in thread From: Kinney, Michael D @ 2016-11-16 16:28 UTC (permalink / raw) To: Fan, Jeff, edk2-devel@lists.01.org, Kinney, Michael D; +Cc: Tian, Feng Jeff, Shouldn't this ASSERT() be moved into the implementation of SmmRegisterExceptionHandler()? This will make sure the PiSmmCpuDxeSmm driver uses the right lib instance for exceptions that module registers and for exceptions other SMM modules register through the EFI_SMM_CPU_SERVICE_PROTOCOL. Mike > -----Original Message----- > From: Fan, Jeff > Sent: Wednesday, November 16, 2016 6:34 AM > To: edk2-devel@lists.01.org > Cc: Tian, Feng <feng.tian@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com> > Subject: [PATCH 2/2] MdeModulePkg/PiSmmCpuDxeSmm: Check RegisterCpuInterruptHandler > status > > Once platform selects the incorrect instance, the caller could know it from > return status and ASSERT(). > > Cc: Feng Tian <feng.tian@intel.com> > Cc: Michael D Kinney <michael.d.kinney@intel.com> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Jeff Fan <jeff.fan@intel.com> > --- > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c | 4 +++- > UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c | 5 ++++- > UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c | 4 +++- > 3 files changed, 10 insertions(+), 3 deletions(-) > > diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c > b/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c > index a871bef..f2e2ceb 100644 > --- a/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c > +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c > @@ -27,6 +27,7 @@ SmmInitPageTable ( > { > UINTN PageFaultHandlerHookAddress; > IA32_IDT_GATE_DESCRIPTOR *IdtEntry; > + EFI_STATUS Status; > > // > // Initialize spin lock > @@ -49,7 +50,8 @@ SmmInitPageTable ( > // > // Register SMM Page Fault Handler > // > - SmmRegisterExceptionHandler (&mSmmCpuService, EXCEPT_IA32_PAGE_FAULT, > SmiPFHandler); > + Status = SmmRegisterExceptionHandler (&mSmmCpuService, EXCEPT_IA32_PAGE_FAULT, > SmiPFHandler); > + ASSERT_EFI_ERROR (Status); > } > > // > diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c > b/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c > index 329574e..350a6a2 100644 > --- a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c > +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c > @@ -1384,5 +1384,8 @@ InitIdtr ( > VOID > ) > { > - SmmRegisterExceptionHandler (&mSmmCpuService, EXCEPT_IA32_DEBUG, > DebugExceptionHandler); > + EFI_STATUS Status; > + > + Status = SmmRegisterExceptionHandler (&mSmmCpuService, EXCEPT_IA32_DEBUG, > DebugExceptionHandler); > + ASSERT_EFI_ERROR (Status); > } > diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c > b/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c > index 9cee784..c49fb26 100644 > --- a/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c > +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c > @@ -102,6 +102,7 @@ SmmInitPageTable ( > UINTN Index; > UINTN PageFaultHandlerHookAddress; > IA32_IDT_GATE_DESCRIPTOR *IdtEntry; > + EFI_STATUS Status; > > // > // Initialize spin lock > @@ -160,7 +161,8 @@ SmmInitPageTable ( > // > // Register Smm Page Fault Handler > // > - SmmRegisterExceptionHandler (&mSmmCpuService, EXCEPT_IA32_PAGE_FAULT, > SmiPFHandler); > + Status = SmmRegisterExceptionHandler (&mSmmCpuService, EXCEPT_IA32_PAGE_FAULT, > SmiPFHandler); > + ASSERT_EFI_ERROR (Status); > } > > // > -- > 2.9.3.windows.2 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] MdeModulePkg/PiSmmCpuDxeSmm: Check RegisterCpuInterruptHandler status 2016-11-16 16:28 ` Kinney, Michael D @ 2016-11-17 2:54 ` Fan, Jeff 2016-11-17 3:17 ` Kinney, Michael D 0 siblings, 1 reply; 6+ messages in thread From: Fan, Jeff @ 2016-11-17 2:54 UTC (permalink / raw) To: Kinney, Michael D, edk2-devel@lists.01.org; +Cc: Tian, Feng Mike, I think it's not necessary to move ASSERT() to SmmRegisterExceptionHandler() implementation. Because PiSmmCpuDxeSmm will invoke SmmRegisterExceptionHandler() at module entry point function as my patch showed, it could make sure PiSmmCpuDxeSmm choose the correct instance. Other module invoke may check SmmRegisterExceptionHandler the return status for other choice per design. For example: @retval EFI_ALREADY_STARTED InterruptHandler is not NULL, and a handler for InterruptType was previously installed. Thanks! Jeff -----Original Message----- From: Kinney, Michael D Sent: Thursday, November 17, 2016 12:29 AM To: Fan, Jeff; edk2-devel@lists.01.org; Kinney, Michael D Cc: Tian, Feng Subject: RE: [PATCH 2/2] MdeModulePkg/PiSmmCpuDxeSmm: Check RegisterCpuInterruptHandler status Jeff, Shouldn't this ASSERT() be moved into the implementation of SmmRegisterExceptionHandler()? This will make sure the PiSmmCpuDxeSmm driver uses the right lib instance for exceptions that module registers and for exceptions other SMM modules register through the EFI_SMM_CPU_SERVICE_PROTOCOL. Mike > -----Original Message----- > From: Fan, Jeff > Sent: Wednesday, November 16, 2016 6:34 AM > To: edk2-devel@lists.01.org > Cc: Tian, Feng <feng.tian@intel.com>; Kinney, Michael D > <michael.d.kinney@intel.com> > Subject: [PATCH 2/2] MdeModulePkg/PiSmmCpuDxeSmm: Check > RegisterCpuInterruptHandler status > > Once platform selects the incorrect instance, the caller could know it > from return status and ASSERT(). > > Cc: Feng Tian <feng.tian@intel.com> > Cc: Michael D Kinney <michael.d.kinney@intel.com> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Jeff Fan <jeff.fan@intel.com> > --- > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c | 4 +++- > UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c | 5 ++++- > UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c | 4 +++- > 3 files changed, 10 insertions(+), 3 deletions(-) > > diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c > b/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c > index a871bef..f2e2ceb 100644 > --- a/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c > +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c > @@ -27,6 +27,7 @@ SmmInitPageTable ( > { > UINTN PageFaultHandlerHookAddress; > IA32_IDT_GATE_DESCRIPTOR *IdtEntry; > + EFI_STATUS Status; > > // > // Initialize spin lock > @@ -49,7 +50,8 @@ SmmInitPageTable ( > // > // Register SMM Page Fault Handler > // > - SmmRegisterExceptionHandler (&mSmmCpuService, EXCEPT_IA32_PAGE_FAULT, > SmiPFHandler); > + Status = SmmRegisterExceptionHandler (&mSmmCpuService, > + EXCEPT_IA32_PAGE_FAULT, > SmiPFHandler); > + ASSERT_EFI_ERROR (Status); > } > > // > diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c > b/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c > index 329574e..350a6a2 100644 > --- a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c > +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c > @@ -1384,5 +1384,8 @@ InitIdtr ( > VOID > ) > { > - SmmRegisterExceptionHandler (&mSmmCpuService, EXCEPT_IA32_DEBUG, > DebugExceptionHandler); > + EFI_STATUS Status; > + > + Status = SmmRegisterExceptionHandler (&mSmmCpuService, > + EXCEPT_IA32_DEBUG, > DebugExceptionHandler); > + ASSERT_EFI_ERROR (Status); > } > diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c > b/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c > index 9cee784..c49fb26 100644 > --- a/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c > +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c > @@ -102,6 +102,7 @@ SmmInitPageTable ( > UINTN Index; > UINTN PageFaultHandlerHookAddress; > IA32_IDT_GATE_DESCRIPTOR *IdtEntry; > + EFI_STATUS Status; > > // > // Initialize spin lock > @@ -160,7 +161,8 @@ SmmInitPageTable ( > // > // Register Smm Page Fault Handler > // > - SmmRegisterExceptionHandler (&mSmmCpuService, EXCEPT_IA32_PAGE_FAULT, > SmiPFHandler); > + Status = SmmRegisterExceptionHandler (&mSmmCpuService, > + EXCEPT_IA32_PAGE_FAULT, > SmiPFHandler); > + ASSERT_EFI_ERROR (Status); > } > > // > -- > 2.9.3.windows.2 ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] MdeModulePkg/PiSmmCpuDxeSmm: Check RegisterCpuInterruptHandler status 2016-11-17 2:54 ` Fan, Jeff @ 2016-11-17 3:17 ` Kinney, Michael D 0 siblings, 0 replies; 6+ messages in thread From: Kinney, Michael D @ 2016-11-17 3:17 UTC (permalink / raw) To: Fan, Jeff, edk2-devel@lists.01.org, Kinney, Michael D; +Cc: Tian, Feng Jeff, I agree that SMM modules that call EFI_SMM_CPU_SERVICE_PROTOCOL.RegisterExceptionHandler() always need to check for error return status and we do not want an ASSERT() there. Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> Mike > -----Original Message----- > From: Fan, Jeff > Sent: Wednesday, November 16, 2016 6:54 PM > To: Kinney, Michael D <michael.d.kinney@intel.com>; edk2-devel@lists.01.org > Cc: Tian, Feng <feng.tian@intel.com> > Subject: RE: [PATCH 2/2] MdeModulePkg/PiSmmCpuDxeSmm: Check > RegisterCpuInterruptHandler status > > Mike, > > I think it's not necessary to move ASSERT() to SmmRegisterExceptionHandler() > implementation. > > Because PiSmmCpuDxeSmm will invoke SmmRegisterExceptionHandler() at module entry > point function as my patch showed, it could make sure PiSmmCpuDxeSmm choose the > correct instance. > > Other module invoke may check SmmRegisterExceptionHandler the return status for other > choice per design. > For example: > @retval EFI_ALREADY_STARTED InterruptHandler is not NULL, and a handler for > InterruptType was previously installed. > > Thanks! > Jeff > > > -----Original Message----- > From: Kinney, Michael D > Sent: Thursday, November 17, 2016 12:29 AM > To: Fan, Jeff; edk2-devel@lists.01.org; Kinney, Michael D > Cc: Tian, Feng > Subject: RE: [PATCH 2/2] MdeModulePkg/PiSmmCpuDxeSmm: Check > RegisterCpuInterruptHandler status > > Jeff, > > Shouldn't this ASSERT() be moved into the implementation of > SmmRegisterExceptionHandler()? This will make sure the PiSmmCpuDxeSmm driver uses > the right lib instance for exceptions that module registers and for exceptions other > SMM modules register through the EFI_SMM_CPU_SERVICE_PROTOCOL. > > Mike > > > -----Original Message----- > > From: Fan, Jeff > > Sent: Wednesday, November 16, 2016 6:34 AM > > To: edk2-devel@lists.01.org > > Cc: Tian, Feng <feng.tian@intel.com>; Kinney, Michael D > > <michael.d.kinney@intel.com> > > Subject: [PATCH 2/2] MdeModulePkg/PiSmmCpuDxeSmm: Check > > RegisterCpuInterruptHandler status > > > > Once platform selects the incorrect instance, the caller could know it > > from return status and ASSERT(). > > > > Cc: Feng Tian <feng.tian@intel.com> > > Cc: Michael D Kinney <michael.d.kinney@intel.com> > > Contributed-under: TianoCore Contribution Agreement 1.0 > > Signed-off-by: Jeff Fan <jeff.fan@intel.com> > > --- > > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c | 4 +++- > > UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c | 5 ++++- > > UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c | 4 +++- > > 3 files changed, 10 insertions(+), 3 deletions(-) > > > > diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c > > b/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c > > index a871bef..f2e2ceb 100644 > > --- a/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c > > +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/PageTbl.c > > @@ -27,6 +27,7 @@ SmmInitPageTable ( > > { > > UINTN PageFaultHandlerHookAddress; > > IA32_IDT_GATE_DESCRIPTOR *IdtEntry; > > + EFI_STATUS Status; > > > > // > > // Initialize spin lock > > @@ -49,7 +50,8 @@ SmmInitPageTable ( > > // > > // Register SMM Page Fault Handler > > // > > - SmmRegisterExceptionHandler (&mSmmCpuService, EXCEPT_IA32_PAGE_FAULT, > > SmiPFHandler); > > + Status = SmmRegisterExceptionHandler (&mSmmCpuService, > > + EXCEPT_IA32_PAGE_FAULT, > > SmiPFHandler); > > + ASSERT_EFI_ERROR (Status); > > } > > > > // > > diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c > > b/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c > > index 329574e..350a6a2 100644 > > --- a/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c > > +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.c > > @@ -1384,5 +1384,8 @@ InitIdtr ( > > VOID > > ) > > { > > - SmmRegisterExceptionHandler (&mSmmCpuService, EXCEPT_IA32_DEBUG, > > DebugExceptionHandler); > > + EFI_STATUS Status; > > + > > + Status = SmmRegisterExceptionHandler (&mSmmCpuService, > > + EXCEPT_IA32_DEBUG, > > DebugExceptionHandler); > > + ASSERT_EFI_ERROR (Status); > > } > > diff --git a/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c > > b/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c > > index 9cee784..c49fb26 100644 > > --- a/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c > > +++ b/UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c > > @@ -102,6 +102,7 @@ SmmInitPageTable ( > > UINTN Index; > > UINTN PageFaultHandlerHookAddress; > > IA32_IDT_GATE_DESCRIPTOR *IdtEntry; > > + EFI_STATUS Status; > > > > // > > // Initialize spin lock > > @@ -160,7 +161,8 @@ SmmInitPageTable ( > > // > > // Register Smm Page Fault Handler > > // > > - SmmRegisterExceptionHandler (&mSmmCpuService, EXCEPT_IA32_PAGE_FAULT, > > SmiPFHandler); > > + Status = SmmRegisterExceptionHandler (&mSmmCpuService, > > + EXCEPT_IA32_PAGE_FAULT, > > SmiPFHandler); > > + ASSERT_EFI_ERROR (Status); > > } > > > > // > > -- > > 2.9.3.windows.2 ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-11-17 3:17 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-11-16 14:33 [PATCH 0/2] Update RegisterCpuInterruptHandler return status Jeff Fan 2016-11-16 14:33 ` [PATCH 1/2] MdeModulePkg/CpuExceptionHanderLibNull: RegisterCpuInterruptHandler() Jeff Fan 2016-11-16 14:33 ` [PATCH 2/2] MdeModulePkg/PiSmmCpuDxeSmm: Check RegisterCpuInterruptHandler status Jeff Fan 2016-11-16 16:28 ` Kinney, Michael D 2016-11-17 2:54 ` Fan, Jeff 2016-11-17 3:17 ` Kinney, Michael D
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox