On Thu, November 16, 2017 5:47 am, Hao Wu wrote: > In order to create all of the children (El Torito standard and UDF) for > a CD/DVD media in an entry of the PartitionDriverBindingStart(), this > commit merges the discovery of the El Torito feature > (PartitionInstallElToritoChildHandles) into function > PartitionInstallUdfChildHandles. > > Cc: Paulo Alcantara <[email protected]> > Cc: Ruiyu Ni <[email protected]> > Cc: Star Zeng <[email protected]> > Cc: Eric Dong <[email protected]> > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Hao Wu <[email protected]> > --- > MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c | 7 +++-- > MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c | 27 > ++++++++++++++++++-- > 2 files changed, 28 insertions(+), 6 deletions(-)
Reviewed-by: Paulo Alcantara <[email protected]> Thanks! Paulo > > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c > b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c > index f6030e0897..603abfe55a 100644 > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c > @@ -43,7 +43,6 @@ EFI_DRIVER_BINDING_PROTOCOL gPartitionDriverBinding = { > // > PARTITION_DETECT_ROUTINE mPartitionDetectRoutineTable[] = { > PartitionInstallGptChildHandles, > - PartitionInstallElToritoChildHandles, > PartitionInstallMbrChildHandles, > PartitionInstallUdfChildHandles, > NULL > @@ -306,9 +305,9 @@ PartitionDriverBindingStart ( > if (BlockIo->Media->MediaPresent || > (BlockIo->Media->RemovableMedia && > !BlockIo->Media->LogicalPartition)) { > // > - // Try for GPT, then El Torito, then UDF, and then legacy MBR > partition > - // types. If the media supports a given partition type install child > handles > - // to represent the partitions described by the media. > + // Try for GPT, then legacy MBR partition types, and then UDF and El > Torito. > + // If the media supports a given partition type install child handles > to > + // represent the partitions described by the media. > // > Routine = &mPartitionDetectRoutineTable[0]; > while (*Routine != NULL) { > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c > b/MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c > index 7eee748958..5aac5640f6 100644 > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c > @@ -688,8 +688,10 @@ PartitionInstallUdfChildHandles ( > EFI_PARTITION_INFO_PROTOCOL PartitionInfo; > EFI_LBA StartingLBA; > EFI_LBA EndingLBA; > + BOOLEAN ChildCreated; > > Media = BlockIo->Media; > + ChildCreated = FALSE; > > // > // Check if UDF logical block size is multiple of underlying device > block size > @@ -704,11 +706,29 @@ PartitionInstallUdfChildHandles ( > } > > // > + // Detect El Torito feature first. > + // And always continue to search for UDF. > + // > + Status = PartitionInstallElToritoChildHandles ( > + This, > + Handle, > + DiskIo, > + DiskIo2, > + BlockIo, > + BlockIo2, > + DevicePath > + ); > + if (!EFI_ERROR (Status)) { > + DEBUG ((DEBUG_INFO, "PartitionDxe: El Torito standard found on handle > 0x%p.\n", Handle)); > + ChildCreated = TRUE; > + } > + > + // > // Search for an UDF file system on block device > // > Status = FindUdfFileSystem (BlockIo, DiskIo, &StartingLBA, &EndingLBA); > if (EFI_ERROR (Status)) { > - return EFI_NOT_FOUND; > + return (ChildCreated ? EFI_SUCCESS : EFI_NOT_FOUND); > } > > // > @@ -735,6 +755,9 @@ PartitionInstallUdfChildHandles ( > EndingLBA, > Media->BlockSize > ); > + if (EFI_ERROR (Status)) { > + return (ChildCreated ? EFI_SUCCESS : Status); > + } > > - return Status; > + return EFI_SUCCESS; > } > -- > 2.12.0.windows.1 > > -- Paulo Alcantara, HP Inc. Speaking for myself only. _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

