IN EFI_PCI_IO_PROTOCOL_ATTRIBUTE_OPERATION Operation\r
)\r
{\r
+ EFI_STATUS Status;\r
PCI_IO_DEVICE *Temp;\r
UINT16 VGACommand;\r
\r
// Check if they are on the same bus\r
//\r
if (Temp->Parent == PciIoDevice->Parent) {\r
- PCI_READ_COMMAND_REGISTER (Temp, &VGACommand);\r
+ Status = PCI_READ_COMMAND_REGISTER (Temp, &VGACommand);\r
\r
//\r
// If they are on the same bus, either one can\r
// be set to snoop, the other set to decode\r
//\r
- if ((VGACommand & EFI_PCI_COMMAND_VGA_PALETTE_SNOOP) != 0) {\r
+ if (!EFI_ERROR (Status) && ((VGACommand & EFI_PCI_COMMAND_VGA_PALETTE_SNOOP) != 0)) {\r
//\r
// VGA has set to snoop, so GFX can be only set to disable snoop\r
//\r
\r
Uhc->PciIo->Flush (Uhc->PciIo);\r
\r
- *TransferResult = QhResult.Result;\r
+ if (!EFI_ERROR (Status)) {\r
+ *TransferResult = QhResult.Result;\r
\r
- if (DataLength != NULL) {\r
- *DataLength = QhResult.Complete;\r
+ if (DataLength != NULL) {\r
+ *DataLength = QhResult.Complete;\r
+ }\r
}\r
\r
UhciDestoryTds (Uhc, TDs);\r
\r
Uhc->PciIo->Flush (Uhc->PciIo);\r
\r
- *TransferResult = QhResult.Result;\r
- *DataToggle = QhResult.NextToggle;\r
- *DataLength = QhResult.Complete;\r
+ if (!EFI_ERROR (Status)) {\r
+ *TransferResult = QhResult.Result;\r
+ *DataToggle = QhResult.NextToggle;\r
+ *DataLength = QhResult.Complete;\r
+ }\r
\r
UhciDestoryTds (Uhc, TDs);\r
Uhc->PciIo->Unmap (Uhc->PciIo, DataMap);\r
UhciUnlinkTdFromQh (Uhc->SyncIntQh, TDs);\r
Uhc->PciIo->Flush (Uhc->PciIo);\r
\r
- *TransferResult = QhResult.Result;\r
- *DataToggle = QhResult.NextToggle;\r
- *DataLength = QhResult.Complete;\r
+ if (!EFI_ERROR (Status)) {\r
+ *TransferResult = QhResult.Result;\r
+ *DataToggle = QhResult.NextToggle;\r
+ *DataLength = QhResult.Complete;\r
+ }\r
\r
UhciDestoryTds (Uhc, TDs);\r
Uhc->PciIo->Unmap (Uhc->PciIo, DataMap);\r
//\r
Promoted = PromoteGuardedFreePages (&StartAddress, &EndAddress);\r
if (Promoted) {\r
- CoreGetMemorySpaceDescriptor (StartAddress, &Descriptor);\r
- CoreAddRange (\r
- EfiConventionalMemory,\r
- StartAddress,\r
- EndAddress,\r
- Descriptor.Capabilities & ~(EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED |\r
- EFI_MEMORY_TESTED | EFI_MEMORY_RUNTIME)\r
- );\r
+ if (!EFI_ERROR (CoreGetMemorySpaceDescriptor (StartAddress, &Descriptor))) {\r
+ CoreAddRange (\r
+ EfiConventionalMemory,\r
+ StartAddress,\r
+ EndAddress,\r
+ Descriptor.Capabilities & ~(EFI_MEMORY_PRESENT | EFI_MEMORY_INITIALIZED |\r
+ EFI_MEMORY_TESTED | EFI_MEMORY_RUNTIME)\r
+ );\r
+ }\r
}\r
}\r
\r
IN EFI_DEVICE_PATH_PROTOCOL *FilePath\r
)\r
{\r
+ EFI_STATUS Status;\r
EFI_BOOT_MANAGER_LOAD_OPTION BootOption;\r
CHAR16 *FileName;\r
\r
+ Status = EFI_NOT_STARTED;\r
FileName = NULL;\r
\r
FileName = ExtractFileNameFromDevicePath (FilePath);\r
if (FileName != NULL) {\r
- EfiBootManagerInitializeLoadOption (\r
- &BootOption,\r
- 0,\r
- LoadOptionTypeBoot,\r
- LOAD_OPTION_ACTIVE,\r
- FileName,\r
- FilePath,\r
- NULL,\r
- 0\r
- );\r
+ Status = EfiBootManagerInitializeLoadOption (\r
+ &BootOption,\r
+ 0,\r
+ LoadOptionTypeBoot,\r
+ LOAD_OPTION_ACTIVE,\r
+ FileName,\r
+ FilePath,\r
+ NULL,\r
+ 0\r
+ );\r
+ }\r
+\r
+ if (!EFI_ERROR (Status)) {\r
//\r
// Since current no boot from removable media directly is allowed */\r
//\r
NewHandle = NULL;\r
FullFileName = NULL;\r
\r
- LibGetFileHandleFromDevicePath (gFileExplorerPrivate.RetDevicePath, &FileHandle, &ParentName, &DeviceHandle);\r
+ if (EFI_ERROR (LibGetFileHandleFromDevicePath (gFileExplorerPrivate.RetDevicePath, &FileHandle, &ParentName, &DeviceHandle))) {\r
+ return EFI_DEVICE_ERROR;\r
+ }\r
+\r
FullFileName = LibAppendFileName (ParentName, FileName);\r
if (FullFileName == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
EFI_DEVICE_PATH_PROTOCOL *FilePath;\r
EFI_STATUS BootManagerMenuStatus;\r
EFI_BOOT_MANAGER_LOAD_OPTION PlatformDefaultBootOption;\r
+ BOOLEAN PlatformDefaultBootOptionValid;\r
\r
HotkeyTriggered = NULL;\r
Status = EFI_SUCCESS;\r
CpuDeadLoop ();\r
}\r
\r
- Status = EfiBootManagerInitializeLoadOption (\r
- &PlatformDefaultBootOption,\r
- LoadOptionNumberUnassigned,\r
- LoadOptionTypePlatformRecovery,\r
- LOAD_OPTION_ACTIVE,\r
- L"Default PlatformRecovery",\r
- FilePath,\r
- NULL,\r
- 0\r
- );\r
- ASSERT_EFI_ERROR (Status);\r
+ PlatformDefaultBootOptionValid = EfiBootManagerInitializeLoadOption (\r
+ &PlatformDefaultBootOption,\r
+ LoadOptionNumberUnassigned,\r
+ LoadOptionTypePlatformRecovery,\r
+ LOAD_OPTION_ACTIVE,\r
+ L"Default PlatformRecovery",\r
+ FilePath,\r
+ NULL,\r
+ 0\r
+ ) == EFI_SUCCESS;\r
+ ASSERT (PlatformDefaultBootOptionValid == TRUE);\r
\r
//\r
// System firmware must include a PlatformRecovery#### variable specifying\r
// a short-form File Path Media Device Path containing the platform default\r
// file path for removable media if the platform supports Platform Recovery.\r
//\r
- if (PcdGetBool (PcdPlatformRecoverySupport)) {\r
+ if (PlatformDefaultBootOptionValid && PcdGetBool (PcdPlatformRecoverySupport)) {\r
LoadOptions = EfiBootManagerGetLoadOptions (&LoadOptionCount, LoadOptionTypePlatformRecovery);\r
if (EfiBootManagerFindLoadOption (&PlatformDefaultBootOption, LoadOptions, LoadOptionCount) == -1) {\r
for (Index = 0; Index < LoadOptionCount; Index++) {\r
LoadOptions = EfiBootManagerGetLoadOptions (&LoadOptionCount, LoadOptionTypePlatformRecovery);\r
ProcessLoadOptions (LoadOptions, LoadOptionCount);\r
EfiBootManagerFreeLoadOptions (LoadOptions, LoadOptionCount);\r
- } else {\r
+ } else if (PlatformDefaultBootOptionValid) {\r
//\r
// When platform recovery is not enabled, still boot to platform default file path.\r
//\r
- EfiBootManagerProcessLoadOption (&PlatformDefaultBootOption);\r
+ PlatformDefaultBootOptionValid = EfiBootManagerProcessLoadOption (&PlatformDefaultBootOption) == EFI_SUCCESS;\r
}\r
}\r
\r
- EfiBootManagerFreeLoadOption (&PlatformDefaultBootOption);\r
+ if (PlatformDefaultBootOptionValid) {\r
+ EfiBootManagerFreeLoadOption (&PlatformDefaultBootOption);\r
+ }\r
\r
DEBUG ((DEBUG_ERROR, "[Bds] Unable to boot!\n"));\r
PlatformBootManagerUnableToBoot ();\r
UINTN FormsetBufferSize;\r
\r
Question = MenuOption->ThisTag;\r
- HiiGetFormSetFromHiiHandle (gFormData->HiiHandle, &FormsetBuffer, &FormsetBufferSize);\r
\r
- FormSetTitleStr = GetToken (FormsetBuffer->FormSetTitle, gFormData->HiiHandle);\r
- FormTitleStr = GetToken (gFormData->FormTitle, gFormData->HiiHandle);\r
+ if (!EFI_ERROR (HiiGetFormSetFromHiiHandle (gFormData->HiiHandle, &FormsetBuffer, &FormsetBufferSize))) {\r
+ FormSetTitleStr = GetToken (FormsetBuffer->FormSetTitle, gFormData->HiiHandle);\r
+ FormTitleStr = GetToken (gFormData->FormTitle, gFormData->HiiHandle);\r
\r
- DEBUG ((DEBUG_ERROR, "\n[%a]: Mismatch Formset : Formset Guid = %g, FormSet title = %s\n", gEfiCallerBaseName, &gFormData->FormSetGuid, FormSetTitleStr));\r
- DEBUG ((DEBUG_ERROR, "[%a]: Mismatch Form : FormId = %d, Form title = %s.\n", gEfiCallerBaseName, gFormData->FormId, FormTitleStr));\r
+ DEBUG ((DEBUG_ERROR, "\n[%a]: Mismatch Formset : Formset Guid = %g, FormSet title = %s\n", gEfiCallerBaseName, &gFormData->FormSetGuid, FormSetTitleStr));\r
+ DEBUG ((DEBUG_ERROR, "[%a]: Mismatch Form : FormId = %d, Form title = %s.\n", gEfiCallerBaseName, gFormData->FormId, FormTitleStr));\r
+ }\r
\r
if (Question->OpCode->OpCode == EFI_IFR_ORDERED_LIST_OP) {\r
QuestionName = GetToken (((EFI_IFR_ORDERED_LIST *)MenuOption->ThisTag->OpCode)->Question.Header.Prompt, gFormData->HiiHandle);\r
Attributes = (UINT8 *)AllocateZeroPool (StrLength * sizeof (UINT8));\r
ASSERT (Attributes != NULL);\r
\r
+ FontInfo = NULL;\r
RowInfo = NULL;\r
Status = EFI_SUCCESS;\r
StringIn2 = NULL;\r
Background = ((EFI_FONT_DISPLAY_INFO *)StringInfo)->BackgroundColor;\r
} else if (Status == EFI_SUCCESS) {\r
FontInfo = &StringInfoOut->FontInfo;\r
- IsFontInfoExisted (Private, FontInfo, NULL, NULL, &GlobalFont);\r
- Height = GlobalFont->FontPackage->Height;\r
- BaseLine = GlobalFont->FontPackage->BaseLine;\r
- Foreground = StringInfoOut->ForegroundColor;\r
- Background = StringInfoOut->BackgroundColor;\r
+ if (IsFontInfoExisted (Private, FontInfo, NULL, NULL, &GlobalFont)) {\r
+ Height = GlobalFont->FontPackage->Height;\r
+ BaseLine = GlobalFont->FontPackage->BaseLine;\r
+ Foreground = StringInfoOut->ForegroundColor;\r
+ Background = StringInfoOut->BackgroundColor;\r
+ } else {\r
+ goto Exit;\r
+ }\r
} else {\r
goto Exit;\r
}\r
AcquireLockOnlyAtBootTime (&mVariableModuleGlobal->VariableGlobal.VariableServicesLock);\r
\r
Status = FindVariable (VariableName, VendorGuid, &Variable, &mVariableModuleGlobal->VariableGlobal, FALSE);\r
- if ((Variable.CurrPtr == NULL) || EFI_ERROR (Status)) {\r
+ if (EFI_ERROR (Status) || (Variable.CurrPtr == NULL)) {\r
goto Done;\r
}\r
\r