--- ./source/private_module/unf_common/unf_rport.c	2022-03-19 08:11:42.290903483 +0000
+++ ./source/private_module/unf_common/unf_rport.c.hotpatch	2022-03-19 07:59:24.837146763 +0000
@@ -2345,6 +2345,13 @@
                   pstLPort->uiPortId, pstLPort->uiNPortId, pstRPort, 
                   pstRPort->uiNPortId, pstRPort->ullPortName, enRpState);
     }
+    if (enRpState == UNF_RPORT_ST_INIT) {
+        UNF_RPortStateMa(pstRPort, UNF_EVENT_RPORT_LOGO);
+        UNF_OS_SPIN_UNLOCK_IRQRESTORE(&pstRPort->stRPortStateLock, ulFlag);
+        UNF_RPortEnterLogo(pstLPort, pstRPort);
+        UNF_RPortRefDec(pstRPort);
+        return;
+    }
     UNF_OS_SPIN_UNLOCK_IRQRESTORE(&pstRPort->stRPortStateLock, ulFlag);
 
     switch (enRpState)
@@ -2389,13 +2396,6 @@
  *****************************************************************************
  *     : UNF_FlushRPortIO
  *   : ͷRportصtgt IO
- *   : UNF_XCHG_S * v_pstXchg
- *   : 
- *   ֵ  : UNF_VOID
- * ˵  :
- *
- * ޸ʷ      :
- *  1.       : 2016422
  *           : y90002607
  *    ޸   : ɺ
  *****************************************************************************
--- ./source/private_module/unf_common/unf_service.c	2022-03-19 08:11:42.310903748 +0000
+++ ./source/private_module/unf_common/unf_service.c.hotpatch	2022-03-19 07:59:24.837146763 +0000
@@ -11727,9 +11727,9 @@
     }
     else
     {
+        v_pstRPort->uiRscnPosition = UNF_RPORT_NOT_NEED_PROCESS;
         UNF_OS_SPIN_UNLOCK_IRQRESTORE(&(v_pstRPort->stRPortStateLock), ulRPortFlag);
     }
-
     return uiRet;
 }
 
@@ -12915,8 +12915,9 @@
         UNF_OS_SPIN_LOCK_IRQSAVE(&(pstRPort->stRPortStateLock), ulFlag);
         if (UNF_RPORT_ST_INIT == pstRPort->enRpState)
         {
+            pstRPort->bNeedDelayRatov = UNF_B_TRUE;
             UNF_OS_SPIN_UNLOCK_IRQRESTORE(&(pstRPort->stRPortStateLock), ulFlag);
-            UNF_RPortEnterLogo(pstLPort, pstRPort);
+            UNF_RPortErrorRecovery(pstRPort);
         }
         else
         {
@@ -12938,7 +12939,6 @@
 
         UNF_RPortDelayLogin(pstRPort);
     }
-    
     return;
 }
 
@@ -13159,8 +13159,9 @@
         UNF_OS_SPIN_LOCK_IRQSAVE(&(pstRPort->stRPortStateLock), ulFlag);
         if (UNF_RPORT_ST_INIT == pstRPort->enRpState)
         {
+            pstRPort->bNeedDelayRatov = UNF_B_TRUE;
             UNF_OS_SPIN_UNLOCK_IRQRESTORE(&(pstRPort->stRPortStateLock), ulFlag);
-            UNF_RPortEnterLogo(pstLPort, pstRPort);
+            UNF_RPortErrorRecovery(pstRPort);
         }
         else
         {
@@ -13169,7 +13170,6 @@
         }
     }
     /* END: Modified by , 2013/8/13, ⵥ:DTS2013081304324  */
-
     return;
 }
 
