From 5d832d62165e1f27173167df74e13a2d6871815b Mon Sep 17 00:00:00 2001 From: Zachary Bobroff Date: Sat, 6 Jun 2015 23:49:39 +0000 Subject: [PATCH] PiSmmCore dispatcher should not use one Index for three loops. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: "Zachary Bobroff" Reviewed-by: "Yao, Jiewen" git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17566 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Core/PiSmmCore/Dispatcher.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/MdeModulePkg/Core/PiSmmCore/Dispatcher.c b/MdeModulePkg/Core/PiSmmCore/Dispatcher.c index 178681ec90..81e8a0dc82 100644 --- a/MdeModulePkg/Core/PiSmmCore/Dispatcher.c +++ b/MdeModulePkg/Core/PiSmmCore/Dispatcher.c @@ -1215,7 +1215,9 @@ SmmDriverDispatchHandler ( EFI_SMM_DRIVER_ENTRY *DriverEntry; EFI_GUID *AprioriFile; UINTN AprioriEntryCount; - UINTN Index; + UINTN HandleIndex; + UINTN SmmTypeIndex; + UINTN AprioriIndex; LIST_ENTRY *Link; UINT32 AuthenticationStatus; UINTN SizeOfBuffer; @@ -1232,8 +1234,8 @@ SmmDriverDispatchHandler ( return EFI_NOT_FOUND; } - for (Index = 0; Index < HandleCount; Index++) { - FvHandle = HandleBuffer[Index]; + for (HandleIndex = 0; HandleIndex < HandleCount; HandleIndex++) { + FvHandle = HandleBuffer[HandleIndex]; if (FvHasBeenProcessed (FvHandle)) { // @@ -1268,13 +1270,13 @@ SmmDriverDispatchHandler ( // Discover Drivers in FV and add them to the Discovered Driver List. // Process EFI_FV_FILETYPE_SMM type and then EFI_FV_FILETYPE_COMBINED_SMM_DXE // - for (Index = 0; Index < sizeof (mSmmFileTypes)/sizeof (EFI_FV_FILETYPE); Index++) { + for (SmmTypeIndex = 0; SmmTypeIndex < sizeof (mSmmFileTypes)/sizeof (EFI_FV_FILETYPE); SmmTypeIndex++) { // // Initialize the search key // Key = 0; do { - Type = mSmmFileTypes[Index]; + Type = mSmmFileTypes[SmmTypeIndex]; GetNextFileStatus = Fv->GetNextFile ( Fv, &Key, @@ -1315,10 +1317,10 @@ SmmDriverDispatchHandler ( // is only valid for the FV that it resided in. // - for (Index = 0; Index < AprioriEntryCount; Index++) { + for (AprioriIndex = 0; AprioriIndex < AprioriEntryCount; AprioriIndex++) { for (Link = mDiscoveredList.ForwardLink; Link != &mDiscoveredList; Link = Link->ForwardLink) { DriverEntry = CR(Link, EFI_SMM_DRIVER_ENTRY, Link, EFI_SMM_DRIVER_ENTRY_SIGNATURE); - if (CompareGuid (&DriverEntry->FileName, &AprioriFile[Index]) && + if (CompareGuid (&DriverEntry->FileName, &AprioriFile[AprioriIndex]) && (FvHandle == DriverEntry->FvHandle)) { DriverEntry->Dependent = FALSE; DriverEntry->Scheduled = TRUE;