]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Library/UefiShellDebug1CommandsLib/SerMode.c
ShellPkg/Hexedit: Fix FreePool() ASSERT() when writing disk
[mirror_edk2.git] / ShellPkg / Library / UefiShellDebug1CommandsLib / SerMode.c
index 448e5cc97b01fe6c6ce6e88fdb0ee0d49d4d6a50..d8856770657e24b85a25458502fe94d5e976e573 100644 (file)
@@ -337,8 +337,16 @@ ShellCommandRunSerMode (
                               StopBits\r
                              );\r
           if (EFI_ERROR (Status)) {\r
-            ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SERMODE_SET_FAIL), gShellDebug1HiiHandle, L"sermode", ConvertHandleToHandleIndex(Handles[Index]));  \r
-            ShellStatus = SHELL_ACCESS_DENIED;\r
+            if (Status == EFI_INVALID_PARAMETER) {\r
+              ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SERMODE_SET_UNSUPPORTED), gShellDebug1HiiHandle, L"sermode", ConvertHandleToHandleIndex(Handles[Index]));  \r
+              ShellStatus = SHELL_UNSUPPORTED;\r
+            } else if (Status == EFI_DEVICE_ERROR) {\r
+              ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SERMODE_SET_DEV_ERROR), gShellDebug1HiiHandle, L"sermode", ConvertHandleToHandleIndex(Handles[Index]));  \r
+              ShellStatus = SHELL_ACCESS_DENIED;\r
+            } else {\r
+              ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SERMODE_SET_FAIL), gShellDebug1HiiHandle, L"sermode", ConvertHandleToHandleIndex(Handles[Index]));  \r
+              ShellStatus = SHELL_ACCESS_DENIED;\r
+            }\r
           } else {\r
             ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_SERMODE_SET_HANDLE), gShellDebug1HiiHandle, ConvertHandleToHandleIndex(Handles[Index]));\r
           }\r