This patch seems be reviewed but not submitted. Hope it can be covered in Q1 stable tag.
Thanks, Dandan -----Original Message----- From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Heinrich Schuchardt Sent: Thursday, September 12, 2019 2:34 PM To: EDK II Development <devel@edk2.groups.io>; Bi, Dandan <dandan...@intel.com> Cc: Jin, Eric <eric....@intel.com>; Supreeth Venkatesh <supreeth.venkat...@arm.com>; Stephano Cetola <stephano.cet...@linux.intel.com>; Wu, Hao A <hao.a...@intel.com>; Wang, Jian J <jian.j.w...@intel.com>; Gao, Liming <liming....@intel.com>; Zeng, Star <star.z...@intel.com>; Yao, Jiewen <jiewen....@intel.com>; Laszlo Ersek <ler...@redhat.com>; Heinrich Schuchardt <xypron.g...@gmx.de> Subject: [edk2-devel] [edk2-core] [PATCH v3 1/1] MdeModulePkg: Make retval in UninstallMultipleProtocol follow Spec REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1869 The UEFI spec requires that if any error occurs in UninstallMultipleProtocolInterfaces(), EFI_INVALID_PARAMETER is returned and not the return code of UninstallProtocolInterface(). Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de> Reviewed-by: Dandan Bi <dandan...@intel.com> --- v3 Use @retval instead of @return. The protocols are reinstalled in the same order in which they are uninstalled. v2 Adjust the subject line. Adjust the function comments to clarify the behavior. This replaces https://edk2.groups.io/g/devel/message/46974 --- MdeModulePkg/Core/Dxe/Hand/Handle.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/MdeModulePkg/Core/Dxe/Hand/Handle.c b/MdeModulePkg/Core/Dxe/Hand/Handle.c index b2721b3ab2..81a13c6ae5 100644 --- a/MdeModulePkg/Core/Dxe/Hand/Handle.c +++ b/MdeModulePkg/Core/Dxe/Hand/Handle.c @@ -802,20 +802,27 @@ Done: - /** Uninstalls a list of protocol interface in the boot services environment.- This function calls UnisatllProtocolInterface() in a loop. This is+ This function calls UninstallProtocolInterface() in a loop. This is basically a lib function to save space. - @param Handle The handle to uninstall the protocol+ If any errors are generated while the protocol interfaces are being+ uninstalled, then the protocol interfaces uninstalled prior to the error will+ be reinstalled and EFI_INVALID_PARAMETER will be returned.++ @param Handle The handle to uninstall the protocol interfaces+ from. @param ... EFI_GUID followed by protocol instance. A NULL- terminates the list. The pairs are the+ terminates the list. The pairs are the arguments to UninstallProtocolInterface(). All the protocols are added to Handle. - @return Status code-+ @retval EFI_SUCCESS if all protocol interfaces where uninstalled.+ @retval EFI_INVALID_PARAMETER if any protocol interface could not be+ uninstalled and an attempt was made to+ reinstall previously uninstalled protocol+ interfaces. **/ EFI_STATUS EFIAPI@@ -864,6 +871,7 @@ CoreUninstallMultipleProtocolInterfaces ( CoreInstallProtocolInterface (&Handle, Protocol, EFI_NATIVE_INTERFACE, Interface); } VA_END (Args);+ Status = EFI_INVALID_PARAMETER; } return Status;-- 2.20.1 -=-=-=-=-=-= Groups.io Links: You receive all messages sent to this group. View/Reply Online (#47177): https://edk2.groups.io/g/devel/message/47177 Mute This Topic: https://groups.io/mt/34112406/1768738 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [dandan...@intel.com] -=-=-=-=-=-= -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#54603): https://edk2.groups.io/g/devel/message/54603 Mute This Topic: https://groups.io/mt/34112406/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-