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]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to