]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Universal/Disk/Partition/Dxe/Mbr.c
Fixed bug in partition driver:
[mirror_edk2.git] / EdkModulePkg / Universal / Disk / Partition / Dxe / Mbr.c
index c0cd23c5bb7ece58f11515e0bb32598e51a47d65..ce6b0d535388adda8f6cfebf6c6e0c37dd99e43f 100644 (file)
@@ -108,7 +108,7 @@ Returns:
   return MbrValid;\r
 }\r
 \r
-BOOLEAN\r
+EFI_STATUS\r
 PartitionInstallMbrChildHandles (\r
   IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
   IN  EFI_HANDLE                   Handle,\r
@@ -129,8 +129,9 @@ Arguments:
   DevicePath - Parent Device Path\r
 \r
 Returns:\r
-  EFI_SUCCESS - If a child handle was added\r
-  other       - A child handle was not added\r
+  EFI_SUCCESS       - If a child handle was added\r
+  EFI_MEDIA_CHANGED - Media changed Detected\r
+       !EFI_SUCCESS      - Not found MBR partition.\r
 \r
 --*/\r
 {\r
@@ -140,13 +141,13 @@ Returns:
   UINTN                     Index;\r
   HARDDRIVE_DEVICE_PATH     HdDev;\r
   HARDDRIVE_DEVICE_PATH     ParentHdDev;\r
-  BOOLEAN                   Found;\r
+  EFI_STATUS                Found;\r
   UINT32                    PartitionNumber;\r
   EFI_DEVICE_PATH_PROTOCOL  *DevicePathNode;\r
   EFI_DEVICE_PATH_PROTOCOL  *LastDevicePathNode;\r
 \r
   Mbr             = NULL;\r
-  Found           = FALSE;\r
+  Found           = EFI_NOT_FOUND;\r
 \r
   Mbr             = AllocatePool (BlockIo->Media->BlockSize);\r
   if (Mbr == NULL) {\r
@@ -161,6 +162,7 @@ Returns:
                       Mbr\r
                       );\r
   if (EFI_ERROR (Status) || !PartitionValidMbr (Mbr, BlockIo->Media->LastBlock)) {\r
+    Found = Status;\r
     goto Done;\r
   }\r
   //\r
@@ -237,7 +239,7 @@ Returns:
                 );\r
 \r
       if (!EFI_ERROR (Status)) {\r
-        Found = TRUE;\r
+        Found = EFI_SUCCESS;\r
       }\r
     }\r
   } else {\r
@@ -257,6 +259,7 @@ Returns:
                           Mbr\r
                           );\r
       if (EFI_ERROR (Status)) {\r
+        Found = Status;\r
         goto Done;\r
       }\r
 \r
@@ -295,7 +298,7 @@ Returns:
                 (BOOLEAN) (Mbr->Partition[0].OSIndicator == EFI_PARTITION)\r
                 );\r
       if (!EFI_ERROR (Status)) {\r
-        Found = TRUE;\r
+        Found = EFI_SUCCESS;\r
       }\r
 \r
       if ((Mbr->Partition[1].OSIndicator != EXTENDED_DOS_PARTITION) &&\r