summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c
diff options
context:
space:
mode:
Diffstat (limited to 'OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c')
-rw-r--r--OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c56
1 files changed, 30 insertions, 26 deletions
diff --git a/OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c b/OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c
index 374c6d8f5e..18646daa67 100644
--- a/OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c
+++ b/OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.c
@@ -1775,34 +1775,38 @@ StoreQemuBootOrder (
Translated,
&TranslatedSize
);
- while (!RETURN_ERROR (Status)) {
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+ while (Status == EFI_SUCCESS ||
+ Status == EFI_UNSUPPORTED)
+ {
+ if (Status == EFI_SUCCESS) {
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
- //
- // Convert the UEFI devpath prefix to binary representation.
- //
- ASSERT (Translated[TranslatedSize] == L'\0');
- DevicePath = ConvertTextToDevicePath (Translated);
- if (DevicePath == NULL) {
- Status = RETURN_OUT_OF_RESOURCES;
- goto FreeExtraPciRoots;
- }
+ //
+ // Convert the UEFI devpath prefix to binary representation.
+ //
+ ASSERT (Translated[TranslatedSize] == L'\0');
+ DevicePath = ConvertTextToDevicePath (Translated);
+ if (DevicePath == NULL) {
+ Status = RETURN_OUT_OF_RESOURCES;
+ goto FreeExtraPciRoots;
+ }
- UnicodeSPrint (
- VariableName,
- sizeof (VariableName),
- L"QemuBootOrder%04d",
- VariableIndex++
- );
- DEBUG ((DEBUG_INFO, "%a: %s = %s\n", __FUNCTION__, VariableName, Translated));
- gRT->SetVariable (
- VariableName,
- &gQemuBootOrderGuid,
- EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,
- GetDevicePathSize (DevicePath),
- DevicePath
- );
- FreePool (DevicePath);
+ UnicodeSPrint (
+ VariableName,
+ sizeof (VariableName),
+ L"QemuBootOrder%04d",
+ VariableIndex++
+ );
+ DEBUG ((DEBUG_INFO, "%a: %s = %s\n", __FUNCTION__, VariableName, Translated));
+ gRT->SetVariable (
+ VariableName,
+ &gQemuBootOrderGuid,
+ EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,
+ GetDevicePathSize (DevicePath),
+ DevicePath
+ );
+ FreePool (DevicePath);
+ }
//
// Move to the next OFW devpath.