]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EmulatorPkg/EmuBlockIoDxe/EmuBlockIo.c
ArmPkg: only attempt buildin MmCommunicationDxe for AArch64
[mirror_edk2.git] / EmulatorPkg / EmuBlockIoDxe / EmuBlockIo.c
index b9ac6ce080eda78d22829e205240349e28d44590..96424a82aeeff71de8334e21029e4650a02152d0 100644 (file)
@@ -1,13 +1,7 @@
 /**@file\r
 \r
-Copyright (c) 2004 - 2009, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution.  The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
 bbe\r
 **/\r
 \r
@@ -662,7 +656,6 @@ EmuBlockIoDriverBindingStop (
   }\r
 \r
   Private = EMU_BLOCK_IO_PRIVATE_DATA_FROM_THIS (BlockIo);\r
-  Status = Private->IoThunk->Close (Private->IoThunk);\r
 \r
   Status = gBS->UninstallMultipleProtocolInterfaces (\r
                   Private->EfiHandle,\r
@@ -677,14 +670,17 @@ EmuBlockIoDriverBindingStop (
                     This->DriverBindingHandle,\r
                     Handle\r
                     );\r
-  }\r
-\r
-  if (!EFI_ERROR (Status)) {\r
+    ASSERT_EFI_ERROR (Status);\r
+    //\r
+    // Destroy the IO interface.\r
+    //\r
+    Status = Private->IoThunk->Close (Private->IoThunk);\r
+    ASSERT_EFI_ERROR (Status);\r
     //\r
     // Free our instance data\r
     //\r
     FreeUnicodeStringTable (Private->ControllerNameTable);\r
-    gBS->FreePool (Private);\r
+    FreePool (Private);\r
   }\r
 \r
   return Status;\r