Update partition driver to not produce BlockIo if a GPT with OS-specific field (BIT1) set in its partition attributes.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9293 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qhuang8
2009-09-21 14:22:14 +00:00
parent 7d9cf3f25e
commit 47e1a80bbc
2 changed files with 15 additions and 3 deletions

View File

@@ -339,10 +339,12 @@ PartitionInstallGptChildHandles (
for (Index = 0; Index < PrimaryHeader->NumberOfPartitionEntries; Index++) {
if (CompareGuid (&PartEntry[Index].PartitionTypeGUID, &gEfiPartTypeUnusedGuid) ||
PEntryStatus[Index].OutOfRange ||
PEntryStatus[Index].Overlap
PEntryStatus[Index].Overlap ||
PEntryStatus[Index].OsSpecific
) {
//
// Don't use null EFI Partition Entries or Invalid Partition Entries
// Don't use null EFI Partition Entries, Invalid Partition Entries or OS specific
// partition Entries
//
continue;
}
@@ -652,6 +654,7 @@ PartitionCheckGptEntry (
EFI_LBA EndingLBA;
UINTN Index1;
UINTN Index2;
UINT64 Attributes;
DEBUG ((EFI_D_INFO, " start check partition entries\n"));
for (Index1 = 0; Index1 < PartHeader->NumberOfPartitionEntries; Index1++) {
@@ -687,6 +690,14 @@ PartitionCheckGptEntry (
}
}
Attributes = PartEntry[Index1].Attributes;
if ((Attributes & BIT1) != 0) {
//
// If Bit 1 is set, this indicate that this is an OS specific GUID partition.
//
PEntryStatus[Index1].OsSpecific = TRUE;
}
}
DEBUG ((EFI_D_INFO, " End check partition entries\n"));