From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.24; helo=mga09.intel.com; envelope-from=hao.a.wu@intel.com; receiver=edk2-devel@lists.01.org Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id DCC4921F85E9E for ; Mon, 26 Mar 2018 19:56:07 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Mar 2018 20:02:43 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,366,1517904000"; d="scan'208";a="42441456" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga001.jf.intel.com with ESMTP; 26 Mar 2018 20:02:42 -0700 Received: from fmsmsx111.amr.corp.intel.com (10.18.116.5) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 26 Mar 2018 20:02:39 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx111.amr.corp.intel.com (10.18.116.5) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 26 Mar 2018 20:02:38 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.226]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.235]) with mapi id 14.03.0319.002; Tue, 27 Mar 2018 11:02:37 +0800 From: "Wu, Hao A" To: "jbrasen.qdt@qualcommdatacenter.com" , "edk2-devel@lists.01.org" Thread-Topic: [edk2] [PATCH] MdeModulePkg/PartitionDxe: Add partition type guid to installed handle Thread-Index: AQHTxOEG5eXWWt1jJE6dKs1KP8DRvqPjZjEw Date: Tue, 27 Mar 2018 03:02:36 +0000 Message-ID: References: In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH] MdeModulePkg/PartitionDxe: Add partition type guid to installed handle X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Mar 2018 02:56:09 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable The patch is good to me. Reviewed-by: Hao Wu Best Regards, Hao Wu > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of > jbrasen.qdt@qualcommdatacenter.com > Sent: Monday, March 26, 2018 4:57 PM > To: edk2-devel@lists.01.org > Subject: [edk2] [PATCH] MdeModulePkg/PartitionDxe: Add partition type gui= d > to installed handle >=20 > From: Jeff Brasen >=20 > Add the partition type GUID for every partition to the installed handle, > this is required per the UEFI specification. >=20 > "The firmware must add the PartitionTypeGuid to the handle of every > active GPT partition using EFI_BOOT_SERVICES.InstallProtocolInterface()." >=20 > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Jeff Brasen > --- > .../Universal/Disk/PartitionDxe/ElTorito.c | 4 ++- > MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c | 4 ++- > MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c | 7 +++-- > .../Universal/Disk/PartitionDxe/Partition.c | 30 ++++++++++++++--= ------ > .../Universal/Disk/PartitionDxe/Partition.h | 7 +++-- > MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c | 4 ++- > 6 files changed, 38 insertions(+), 18 deletions(-) >=20 > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c > b/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c > index 2084ee5..a7b5434 100644 > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/ElTorito.c > @@ -1,13 +1,14 @@ > /** @file > Decode an El Torito formatted CD-ROM >=20 > +Copyright (c) 2018 Qualcomm Datacenter Technologies, Inc. > Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
> This program and the accompanying materials > are licensed and made available under the terms and conditions of the BS= D > License > which accompanies this distribution. The full text of the license may b= e found > at > http://opensource.org/licenses/bsd-license.php >=20 > THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, > WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS > OR IMPLIED. >=20 > **/ > @@ -258,21 +259,22 @@ PartitionInstallElToritoChildHandles ( > Handle, > DiskIo, > DiskIo2, > BlockIo, > BlockIo2, > DevicePath, > (EFI_DEVICE_PATH_PROTOCOL *) &CdDev, > &PartitionInfo, > Catalog->Boot.Lba * (SIZE_2KB / Media->BlockSize), > Catalog->Boot.Lba * (SIZE_2KB / Media->BlockSize) + > CdDev.PartitionSize - 1, > - SubBlockSize > + SubBlockSize, > + NULL > ); > if (!EFI_ERROR (Status)) { > Found =3D EFI_SUCCESS; > } > } > } >=20 > FreePool (VolDescriptor); >=20 > return Found; > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c > b/MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c > index 2cd3e15..fe26a64 100644 > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Gpt.c > @@ -6,20 +6,21 @@ > This driver will have external input - disk partition. > This external input must be validated carefully to avoid security issu= e like > buffer overflow, integer overflow. >=20 > PartitionInstallGptChildHandles() routine will read disk partition con= tent and > do basic validation before PartitionInstallChildHandle(). >=20 > PartitionValidGptTable(), PartitionCheckGptEntry() routine will accept= disk > partition content and validate the GPT table and GPT entry. >=20 > +Copyright (c) 2018 Qualcomm Datacenter Technologies, Inc. > Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
> This program and the accompanying materials > are licensed and made available under the terms and conditions of the BS= D > License > which accompanies this distribution. The full text of the license may b= e found > at > http://opensource.org/licenses/bsd-license.php >=20 > THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, > WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS > OR IMPLIED. >=20 > **/ > @@ -412,21 +413,22 @@ PartitionInstallGptChildHandles ( > Handle, > DiskIo, > DiskIo2, > BlockIo, > BlockIo2, > DevicePath, > (EFI_DEVICE_PATH_PROTOCOL *) &HdDev, > &PartitionInfo, > Entry->StartingLBA, > Entry->EndingLBA, > - BlockSize > + BlockSize, > + &Entry->PartitionTypeGUID > ); > } >=20 > DEBUG ((EFI_D_INFO, "Prepare to Free Pool\n")); >=20 > Done: > if (ProtectiveMbr !=3D NULL) { > FreePool (ProtectiveMbr); > } > if (PrimaryHeader !=3D NULL) { > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c > b/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c > index 55e9d26..479745b 100644 > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Mbr.c > @@ -4,20 +4,21 @@ > MBR - Master Boot Record is in the first sector of a partitioned hard = disk. > The MBR supports four partitions per disk. The MBR also contains= legacy > code that is not run on an EFI system. The legacy code reads the > first sector of the active partition into memory and >=20 > BPB - BIOS Parameter Block is in the first sector of a FAT file system= . > The BPB contains information about the FAT file system. The BPB = is > always on the first sector of a media. The first sector also con= tains > the legacy boot strap code. >=20 > +Copyright (c) 2018 Qualcomm Datacenter Technologies, Inc. > Copyright (c) 2014, Hewlett-Packard Development Company, L.P.
> Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
> This program and the accompanying materials > are licensed and made available under the terms and conditions of the BS= D > License > which accompanies this distribution. The full text of the license may b= e found > at > http://opensource.org/licenses/bsd-license.php >=20 > THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, > WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS > OR IMPLIED. >=20 > @@ -239,21 +240,22 @@ PartitionInstallMbrChildHandles ( > Handle, > DiskIo, > DiskIo2, > BlockIo, > BlockIo2, > DevicePath, > (EFI_DEVICE_PATH_PROTOCOL *) &HdDev, > &PartitionInfo, > HdDev.PartitionStart, > HdDev.PartitionStart + HdDev.PartitionSize - 1, > - MBR_SIZE > + MBR_SIZE, > + ((Mbr->Partition[Index].OSIndicator =3D=3D EFI_PARTITION= ) ? > &gEfiPartTypeSystemPartGuid: NULL) > ); >=20 > if (!EFI_ERROR (Status)) { > Found =3D EFI_SUCCESS; > } > } > } else { > // > // It's an extended partition. Follow the extended partition > // chain to get all the logical drives > @@ -310,21 +312,22 @@ PartitionInstallMbrChildHandles ( > Handle, > DiskIo, > DiskIo2, > BlockIo, > BlockIo2, > DevicePath, > (EFI_DEVICE_PATH_PROTOCOL *) &HdDev, > &PartitionInfo, > HdDev.PartitionStart - ParentHdDev.PartitionStart, > HdDev.PartitionStart - ParentHdDev.PartitionStart + > HdDev.PartitionSize - 1, > - MBR_SIZE > + MBR_SIZE, > + ((Mbr->Partition[0].OSIndicator =3D=3D EFI_PARTITION) ? > &gEfiPartTypeSystemPartGuid: NULL) > ); > if (!EFI_ERROR (Status)) { > Found =3D EFI_SUCCESS; > } >=20 > if ((Mbr->Partition[1].OSIndicator !=3D EXTENDED_DOS_PARTITION) && > (Mbr->Partition[1].OSIndicator !=3D EXTENDED_WINDOWS_PARTITION= ) > ) { > break; > } > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c > b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c > index 46c0877..71acdcc 100644 > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.c > @@ -1,16 +1,17 @@ > /** @file > Partition driver that produces logical BlockIo devices from a physical > BlockIo device. The logical BlockIo devices are based on the format > of the raw block devices media. Currently "El Torito CD-ROM", UDF, Leg= acy > MBR, and GPT partition schemes are supported. >=20 > +Copyright (c) 2018 Qualcomm Datacenter Technologies, Inc. > Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
> This program and the accompanying materials > are licensed and made available under the terms and conditions of the BS= D > License > which accompanies this distribution. The full text of the license may b= e found > at > http://opensource.org/licenses/bsd-license.php >=20 > THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, > WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS > OR IMPLIED. >=20 > **/ > @@ -394,20 +395,21 @@ PartitionDriverBindingStop ( > IN EFI_HANDLE *ChildHandleBuffer > ) > { > EFI_STATUS Status; > UINTN Index; > EFI_BLOCK_IO_PROTOCOL *BlockIo; > EFI_BLOCK_IO2_PROTOCOL *BlockIo2; > BOOLEAN AllChildrenStopped; > PARTITION_PRIVATE_DATA *Private; > EFI_DISK_IO_PROTOCOL *DiskIo; > + EFI_GUID *TypeGuid; >=20 > BlockIo =3D NULL; > BlockIo2 =3D NULL; > Private =3D NULL; >=20 > if (NumberOfChildren =3D=3D 0) { > // > // In the case of re-entry of the PartitionDriverBindingStop, the > // NumberOfChildren may not reflect the actual number of children on= the > // bus driver. Hence, additional check is needed here. > @@ -486,20 +488,27 @@ PartitionDriverBindingStop ( > } else { > Status =3D EFI_SUCCESS; > } >=20 > gBS->CloseProtocol ( > ControllerHandle, > &gEfiDiskIoProtocolGuid, > This->DriverBindingHandle, > ChildHandleBuffer[Index] > ); > + > + if (IsZeroGuid (&Private->TypeGuid)) { > + TypeGuid =3D NULL; > + } else { > + TypeGuid =3D &Private->TypeGuid; > + } > + > // > // All Software protocols have be freed from the handle so remove it= . > // Remove the BlockIo Protocol if has. > // Remove the BlockIo2 Protocol if has. > // > if (BlockIo2 !=3D NULL) { > // > // Some device drivers might re-install the BlockIO(2) protocols f= or a > // media change condition. Therefore, if the FlushBlocksEx returne= d with > // EFI_MEDIA_CHANGED, just let the BindingStop fail to avoid poten= tial > @@ -509,35 +518,35 @@ PartitionDriverBindingStop ( > Status =3D gBS->UninstallMultipleProtocolInterfaces ( > ChildHandleBuffer[Index], > &gEfiDevicePathProtocolGuid, > Private->DevicePath, > &gEfiBlockIoProtocolGuid, > &Private->BlockIo, > &gEfiBlockIo2ProtocolGuid, > &Private->BlockIo2, > &gEfiPartitionInfoProtocolGuid, > &Private->PartitionInfo, > - Private->EspGuid, > + TypeGuid, > NULL, > NULL > ); > } > } else { > Status =3D gBS->UninstallMultipleProtocolInterfaces ( > ChildHandleBuffer[Index], > &gEfiDevicePathProtocolGuid, > Private->DevicePath, > &gEfiBlockIoProtocolGuid, > &Private->BlockIo, > &gEfiPartitionInfoProtocolGuid, > &Private->PartitionInfo, > - Private->EspGuid, > + TypeGuid, > NULL, > NULL > ); > } >=20 > if (EFI_ERROR (Status)) { > Private->InStop =3D FALSE; > gBS->OpenProtocol ( > ControllerHandle, > &gEfiDiskIoProtocolGuid, > @@ -1097,39 +1106,41 @@ PartitionFlushBlocksEx ( > @param[in] ParentDiskIo Parent DiskIo interface. > @param[in] ParentDiskIo2 Parent DiskIo2 interface. > @param[in] ParentBlockIo Parent BlockIo interface. > @param[in] ParentBlockIo2 Parent BlockIo2 interface. > @param[in] ParentDevicePath Parent Device Path. > @param[in] DevicePathNode Child Device Path node. > @param[in] PartitionInfo Child Partition Information interface. > @param[in] Start Start Block. > @param[in] End End Block. > @param[in] BlockSize Child block size. > + @param[in] TypeGuid Partition GUID Type. >=20 > @retval EFI_SUCCESS A child handle was added. > @retval other A child handle was not added. >=20 > **/ > EFI_STATUS > PartitionInstallChildHandle ( > IN EFI_DRIVER_BINDING_PROTOCOL *This, > IN EFI_HANDLE ParentHandle, > IN EFI_DISK_IO_PROTOCOL *ParentDiskIo, > IN EFI_DISK_IO2_PROTOCOL *ParentDiskIo2, > IN EFI_BLOCK_IO_PROTOCOL *ParentBlockIo, > IN EFI_BLOCK_IO2_PROTOCOL *ParentBlockIo2, > IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath, > IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, > IN EFI_PARTITION_INFO_PROTOCOL *PartitionInfo, > IN EFI_LBA Start, > IN EFI_LBA End, > - IN UINT32 BlockSize > + IN UINT32 BlockSize, > + IN EFI_GUID *TypeGuid > ) > { > EFI_STATUS Status; > PARTITION_PRIVATE_DATA *Private; >=20 > Status =3D EFI_SUCCESS; > Private =3D AllocateZeroPool (sizeof (PARTITION_PRIVATE_DATA)); > if (Private =3D=3D NULL) { > return EFI_OUT_OF_RESOURCES; > } > @@ -1209,58 +1220,55 @@ PartitionInstallChildHandle ( > if (Private->DevicePath =3D=3D NULL) { > FreePool (Private); > return EFI_OUT_OF_RESOURCES; > } >=20 > // > // Set the PartitionInfo into Private Data. > // > CopyMem (&Private->PartitionInfo, PartitionInfo, sizeof > (EFI_PARTITION_INFO_PROTOCOL)); >=20 > - if (PartitionInfo->System =3D=3D 1) { > - Private->EspGuid =3D &gEfiPartTypeSystemPartGuid; > + if (TypeGuid !=3D NULL) { > + CopyGuid(&(Private->TypeGuid), TypeGuid); > } else { > - // > - // If NULL InstallMultipleProtocolInterfaces will ignore it. > - // > - Private->EspGuid =3D NULL; > + ZeroMem ((VOID *)&(Private->TypeGuid), sizeof (EFI_GUID)); > } >=20 > // > // Create the new handle. > // > Private->Handle =3D NULL; > if (Private->DiskIo2 !=3D NULL) { > Status =3D gBS->InstallMultipleProtocolInterfaces ( > &Private->Handle, > &gEfiDevicePathProtocolGuid, > Private->DevicePath, > &gEfiBlockIoProtocolGuid, > &Private->BlockIo, > &gEfiBlockIo2ProtocolGuid, > &Private->BlockIo2, > &gEfiPartitionInfoProtocolGuid, > &Private->PartitionInfo, > - Private->EspGuid, > + TypeGuid, > NULL, > NULL > ); > } else { > Status =3D gBS->InstallMultipleProtocolInterfaces ( > &Private->Handle, > &gEfiDevicePathProtocolGuid, > Private->DevicePath, > &gEfiBlockIoProtocolGuid, > &Private->BlockIo, > &gEfiPartitionInfoProtocolGuid, > &Private->PartitionInfo, > - Private->EspGuid, > + TypeGuid, > NULL, > NULL > ); > } >=20 > if (!EFI_ERROR (Status)) { > // > // Open the Parent Handle for the child > // > Status =3D gBS->OpenProtocol ( > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h > b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h > index c763c67..f1a0520 100644 > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Partition.h > @@ -1,16 +1,17 @@ > /** @file > Partition driver that produces logical BlockIo devices from a physical > BlockIo device. The logical BlockIo devices are based on the format > of the raw block devices media. Currently "El Torito CD-ROM", UDF, Leg= acy > MBR, and GPT partition schemes are supported. >=20 > +Copyright (c) 2018 Qualcomm Datacenter Technologies, Inc. > Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.
> This program and the accompanying materials > are licensed and made available under the terms and conditions of the BS= D > License > which accompanies this distribution. The full text of the license may b= e found > at > http://opensource.org/licenses/bsd-license.php >=20 > THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, > WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS > OR IMPLIED. >=20 > **/ > @@ -58,21 +59,21 @@ typedef struct { >=20 > EFI_DISK_IO_PROTOCOL *DiskIo; > EFI_DISK_IO2_PROTOCOL *DiskIo2; > EFI_BLOCK_IO_PROTOCOL *ParentBlockIo; > EFI_BLOCK_IO2_PROTOCOL *ParentBlockIo2; > UINT64 Start; > UINT64 End; > UINT32 BlockSize; > BOOLEAN InStop; >=20 > - EFI_GUID *EspGuid; > + EFI_GUID TypeGuid; >=20 > } PARTITION_PRIVATE_DATA; >=20 > typedef struct { > EFI_DISK_IO2_TOKEN DiskIo2Token; > EFI_BLOCK_IO2_TOKEN *BlockIo2Token; > } PARTITION_ACCESS_TASK; >=20 > #define PARTITION_DEVICE_FROM_BLOCK_IO_THIS(a) CR (a, > PARTITION_PRIVATE_DATA, BlockIo, PARTITION_PRIVATE_DATA_SIGNATURE) > #define PARTITION_DEVICE_FROM_BLOCK_IO2_THIS(a) CR (a, > PARTITION_PRIVATE_DATA, BlockIo2, PARTITION_PRIVATE_DATA_SIGNATURE) > @@ -320,39 +321,41 @@ PartitionComponentNameGetControllerName ( > @param[in] ParentDiskIo Parent DiskIo interface. > @param[in] ParentDiskIo2 Parent DiskIo2 interface. > @param[in] ParentBlockIo Parent BlockIo interface. > @param[in] ParentBlockIo2 Parent BlockIo2 interface. > @param[in] ParentDevicePath Parent Device Path. > @param[in] DevicePathNode Child Device Path node. > @param[in] PartitionInfo Child Partition Information interface. > @param[in] Start Start Block. > @param[in] End End Block. > @param[in] BlockSize Child block size. > + @param[in] TypeGuid Parition Type Guid. >=20 > @retval EFI_SUCCESS A child handle was added. > @retval other A child handle was not added. >=20 > **/ > EFI_STATUS > PartitionInstallChildHandle ( > IN EFI_DRIVER_BINDING_PROTOCOL *This, > IN EFI_HANDLE ParentHandle, > IN EFI_DISK_IO_PROTOCOL *ParentDiskIo, > IN EFI_DISK_IO2_PROTOCOL *ParentDiskIo2, > IN EFI_BLOCK_IO_PROTOCOL *ParentBlockIo, > IN EFI_BLOCK_IO2_PROTOCOL *ParentBlockIo2, > IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath, > IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, > IN EFI_PARTITION_INFO_PROTOCOL *PartitionInfo, > IN EFI_LBA Start, > IN EFI_LBA End, > - IN UINT32 BlockSize > + IN UINT32 BlockSize, > + IN EFI_GUID *TypeGuid > ); >=20 > /** > Test to see if there is any child on ControllerHandle. >=20 > @param[in] ControllerHandle Handle of device to test. >=20 > @retval TRUE There are children on the ControllerHa= ndle. > @retval FALSE No child is on the ControllerHandle. >=20 > diff --git a/MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c > b/MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c > index 5aac564..83bd174 100644 > --- a/MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c > +++ b/MdeModulePkg/Universal/Disk/PartitionDxe/Udf.c > @@ -1,13 +1,14 @@ > /** @file > Scan for an UDF file system on a formatted media. >=20 > + Copyright (c) 2018 Qualcomm Datacenter Technologies, Inc. > Copyright (C) 2014-2017 Paulo Alcantara >=20 > This program and the accompanying materials are licensed and made > available > under the terms and conditions of the BSD License which accompanies th= is > distribution. The full text of the license may be found at > http://opensource.org/licenses/bsd-license.php >=20 > THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" > BASIS, WITHOUT > WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR > IMPLIED. > **/ > @@ -746,18 +747,19 @@ PartitionInstallUdfChildHandles ( > Handle, > DiskIo, > DiskIo2, > BlockIo, > BlockIo2, > DevicePath, > (EFI_DEVICE_PATH_PROTOCOL *)&gUdfDevicePath, > &PartitionInfo, > StartingLBA, > EndingLBA, > - Media->BlockSize > + Media->BlockSize, > + NULL > ); > if (EFI_ERROR (Status)) { > return (ChildCreated ? EFI_SUCCESS : Status); > } >=20 > return EFI_SUCCESS; > } > -- > 1.9.1 >=20 > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel