This patch updates some API descriptions in DxeIpIoLib to match the real
implementation.

Cc: Ye Ting <[email protected]>
Cc: Wu Jiaxin <[email protected]>
Cc: Wang Fan <[email protected]>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Fu Siyuan <[email protected]>
---
 MdeModulePkg/Include/Library/IpIoLib.h       |  4 ++++
 MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.c | 34 +++++++++++++++++++++-------
 2 files changed, 30 insertions(+), 8 deletions(-)

diff --git a/MdeModulePkg/Include/Library/IpIoLib.h 
b/MdeModulePkg/Include/Library/IpIoLib.h
index aab0c68059..ecb3f11e5c 100644
--- a/MdeModulePkg/Include/Library/IpIoLib.h
+++ b/MdeModulePkg/Include/Library/IpIoLib.h
@@ -385,6 +385,7 @@ IpIoStop (
                                       successfully.
   @retval          EFI_ACCESS_DENIED  The IP_IO instance is configured; avoid  
                                       reopening it.
+  @retval          EFI_UNSUPPORTED    IPv4 RawData mode is no supported.
   @retval          Others             An error condition occurred.
 
 **/
@@ -416,6 +417,7 @@ IpIoOpen (
   @retval          EFI_SUCCESS           The operation completed successfully.
   @retval          EFI_NOT_STARTED       The IpIo is not configured.
   @retval          EFI_OUT_OF_RESOURCES  Failed due to resource limitations.
+  @retval          Others                Error condition occurred.
 
 **/
 EFI_STATUS
@@ -541,6 +543,7 @@ IpIoFindSender (
   @param[out]  IsHard                If TRUE, indicates that it is a hard 
error.
   @param[out]  Notify                If TRUE, SockError needs to be notified.
 
+  @retval EFI_UNSUPPORTED            Unrecognizable ICMP error code
   @return The ICMP Error Status, such as EFI_NETWORK_UNREACHABLE.
 
 **/
@@ -574,6 +577,7 @@ IpIoGetIcmpErrStatus (
   @retval      EFI_INVALID_PARAMETER The Neighbor Address is invalid.
   @retval      EFI_NOT_FOUND         The neighbor cache entry is not in the 
                                      neighbor table.  
+  @retval      EFI_UNSUPPORTED       IP version is IPv4, which doesn't support 
neighbor cache refresh.
   @retval      EFI_OUT_OF_RESOURCES  Failed due to resource limitations.
 
 **/
diff --git a/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.c 
b/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.c
index abc07fb0ff..c880818d42 100644
--- a/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.c
+++ b/MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.c
@@ -129,6 +129,7 @@ IpIoTransmitHandler (
 
   @retval       EFI_SUCCESS        The IP child is created and the IP protocol
                                    interface is retrieved.
+  @retval       EFI_UNSUPPORTED    Upsupported IpVersion.
   @retval       Others             The required operation failed.
 
 **/
@@ -206,6 +207,7 @@ IpIoCreateIpChildOpenProtocol (
 
   @retval     EFI_SUCCESS         The IP protocol is closed and the relevant 
IP child
                                   is destroyed.
+  @retval     EFI_UNSUPPORTED     Upsupported IpVersion.
   @retval     Others              The required operation failed.
 
 **/
@@ -1276,6 +1278,7 @@ ReleaseIpIo:
                                       successfully.
   @retval          EFI_ACCESS_DENIED  The IP_IO instance is configured, avoid 
to 
                                       reopen it.
+  @retval          EFI_UNSUPPORTED    IPv4 RawData mode is no supported.
   @retval          Others             Error condition occurred.
 
 **/
@@ -1488,20 +1491,28 @@ IpIoDestroy (
   IN OUT IP_IO *IpIo
   )
 {
+  EFI_STATUS    Status;
+  
   //
   // Stop the IpIo.
   //
-  IpIoStop (IpIo);
+  Status = IpIoStop (IpIo);
+  if (EFI_ERROR (Status)) {
+    return Status;
+  }
 
   //
   // Close the IP protocol and destroy the child.
   //
-  IpIoCloseProtocolDestroyIpChild (
-    IpIo->Controller,
-    IpIo->Image,
-    IpIo->ChildHandle,
-    IpIo->IpVersion
-    );
+  Status = IpIoCloseProtocolDestroyIpChild (
+             IpIo->Controller,
+             IpIo->Image,
+             IpIo->ChildHandle,
+             IpIo->IpVersion
+             );
+  if (EFI_ERROR (Status)) {
+    return Status;
+  }
 
   gBS->FreePool (IpIo);
 
@@ -1530,6 +1541,7 @@ IpIoDestroy (
   @retval          EFI_SUCCESS           The operation is completed 
successfully.
   @retval          EFI_NOT_STARTED       The IpIo is not configured.
   @retval          EFI_OUT_OF_RESOURCES  Failed due to resource limit.
+  @retval          Others                Error condition occurred.
 
 **/
 EFI_STATUS
@@ -2044,6 +2056,7 @@ IpIoFindSender (
   @param[out]  IsHard                If TRUE, indicates that it is a hard 
error.
   @param[out]  Notify                If TRUE, SockError needs to be notified.
 
+  @retval EFI_UNSUPPORTED            Unrecognizable ICMP error code.
   @return ICMP Error Status, such as EFI_NETWORK_UNREACHABLE.
 
 **/
@@ -2162,6 +2175,7 @@ IpIoGetIcmpErrStatus (
   @retval      EFI_INVALID_PARAMETER Neighbor Address is invalid.
   @retval      EFI_NOT_FOUND         The neighbor cache entry is not in the 
                                      neighbor table.  
+  @retval      EFI_UNSUPPORTED       IP version is IPv4, which doesn't support 
neighbor cache refresh.
   @retval      EFI_OUT_OF_RESOURCES  Failed due to resource limit.
 
 **/
@@ -2174,10 +2188,14 @@ IpIoRefreshNeighbor (
 {
   EFI_IP6_PROTOCOL  *Ip;
 
-  if (!IpIo->IsConfigured || IpIo->IpVersion != IP_VERSION_6) {
+  if (!IpIo->IsConfigured) {
     return EFI_NOT_STARTED;
   }
 
+  if (IpIo->IpVersion != IP_VERSION_6) {
+    return EFI_UNSUPPORTED;
+  }
+
   Ip = IpIo->Ip.Ip6;
 
   return Ip->Neighbors (Ip, FALSE, &Neighbor->v6, NULL, Timeout, TRUE);
-- 
2.13.0.windows.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to