Yes. I have checked the image with OVMF. The SUSE image has the MBR table but 
not like others, such as Ubuntu, RedHat and Fedora which would contain a 
partition entry with the entire disk.

That means it would pass the MBR child handle check and would never go to the 
UDF(or ElTorito) check.

I think we should update the invalid MBR check logic.

Thanks,
Zhichao

> -----Original Message-----
> From: Gary Lin <[email protected]>
> Sent: Thursday, July 16, 2020 11:33 AM
> To: [email protected]; Gao, Zhichao <[email protected]>
> Cc: Wu, Hao A <[email protected]>; Ni, Ray <[email protected]>
> Subject: Re: [edk2-devel] [PATCH V3 3/3] MdeModulePkg/PartitionDxe: Add
> already start check for child hanldes
> 
> On Tue, Jul 14, 2020 at 09:22:59AM +0800, Gao, Zhichao via groups.io wrote:
> > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2823
> >
> > Treat the EFI_ALREADY_STARTED as EFI_SUCCESS to avoid the partition
> > driver continuely check next routine function.
> Hi Zhichao,
> 
> I just found that this patch breaks the loading of openSUSE iso images[*].
> Would you mind to take a look at it?
> 
> Thanks,
> 
> Gary Lin
> 
> [*] http://download.opensuse.org/distribution/leap/15.2/iso/openSUSE-Leap-
> 15.2-NET-x86_64.iso
> 
> >
> > Cc: Hao A Wu <[email protected]>
> > Cc: Ray Ni <[email protected]>
> > Signed-off-by: Zhichao Gao <[email protected]>
> > Reviewed-by: Hao A Wu <[email protected]>
> > ---
> >  MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c | 9 +++++++++
> >  1 file changed, 9 insertions(+)
> >
> > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c
> > b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c
> > index d1c878ad2e..6a43c3cafb 100644
> > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c
> > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c
> > @@ -1276,6 +1276,15 @@ PartitionInstallChildHandle (
> >    } else {
> >      FreePool (Private->DevicePath);
> >      FreePool (Private);
> > +
> > +    //
> > +    // if the Status == EFI_ALREADY_STARTED, it means the child handles
> > +    // are already installed. So return EFI_SUCCESS to avoid do the next
> > +    // partition type check.
> > +    //
> > +    if (Status == EFI_ALREADY_STARTED) {
> > +      Status = EFI_SUCCESS;
> > +    }
> >    }
> >
> >    return Status;
> > --
> > 2.21.0.windows.1
> >
> >
> > 
> >


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#62650): https://edk2.groups.io/g/devel/message/62650
Mute This Topic: https://groups.io/mt/75490642/21656
Group Owner: [email protected]
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to