--- ./source/private_module/epl/V3/epl_cfg_msg.c	2018-04-26 09:50:01.000000000 +0000
+++ ./source/private_module/epl/V3/epl_cfg_msg.c.hotpatch	2020-11-17 03:02:55.000000000 +0000
@@ -17413,18 +17413,18 @@
     eplRspXnetSyncIscsiMsg(EPL_XNET_SEND_ISCSI_DEL, srcNid, msgSn, result);
     return;
 }
-
-/**************************************************************************
-     :  ڵiSCSI tgt Ļص
- :  
-            context: ص
-            result: ص
- :  
-            
- ֵ  :  
-            
-      :  
-**************************************************************************/
+void eplMpPortModifyConfIntf(void* data)
+{
+    int32_t ret = RETURN_ERROR;
+    ISI_CHG_TARGET_S* tgtModifyPara = NULL;
+    tgtModifyPara = (ISI_CHG_TARGET_S *)data;
+    ret = mpPortModifyConfIntf(tgtModifyPara, REMOTE_SESSION_TYPE_EPL);
+    if (RETURN_OK != ret)
+    {   DBG_LogError(EPL_LOG_ID_00FB, "Modify iSCSI driver info failed, ret(%u).", ret); }
+    FREE_PUB_STRUCTURE(tgtModifyPara);
+    tgtModifyPara = NULL;
+    return;
+}
 void eplConnIscsTgtNidCallBack(void* context, int32_t result)
 {
     uint16_t srcNid = INVALID_VALUE16;
@@ -17445,19 +17445,19 @@
     eplRspXnetSyncIscsiMsg(EPL_XNET_SEND_ISCSI_CFG, srcNid, msgSn, result);
     return;
 }
-
-/**************************************************************************
-     :  ڵյȺiSCSI tgtɾ¼
- :  
-            buff: iSCSI ɾϢ
-            srcNid: ͽڵ
- :  
-            
- ֵ  :  
-             RETURN_OK: ɹ
-             : ʧ 
-     :  iscsi·ĽӿΪ첽
-**************************************************************************/
+void eplDelayHandleModifyDrvInfo(void *data)
+{
+    ISI_CHG_TARGET_S* tgtModifyPara = NULL;
+    int32_t ret = RETURN_ERROR;  
+    tgtModifyPara = (ISI_CHG_TARGET_S *)data; 
+    DBG_LogInfo(EPL_LOG_ID_00FB, "Modify iSCSI driver info.");
+    ret = eplPutCmdSelfThread((void*)tgtModifyPara, eplMpPortModifyConfIntf);
+    if (RETURN_OK != ret)
+    {   DBG_LogError(DBG_LOGID_NEW, "Switch iSCSI driver info failed, ret(%u).", ret);
+        FREE_PUB_STRUCTURE(tgtModifyPara);
+        tgtModifyPara = NULL;}
+    return;
+}
 int32_t eplRcvIscsiDelMsgFromMaster(char* buff, uint16_t srcNid, uint64_t msgSn)
 {
     int32_t ret = RETURN_ERROR;
@@ -17514,34 +17514,34 @@
 {
     int32_t ret = RETURN_ERROR;
     ISI_CHG_TARGET_S* tgtModifyPara = NULL;
-
+    ISI_CHG_TARGET_S* tempBuff = NULL;
+    
     if (NULL == buff)
     {
         DBG_LogError(EPL_LOG_ID_0219, "Receive NULL buffer of iSCSI connect message from nid(%u).",srcNid);
         return RETURN_ERROR;
     }
-    tgtModifyPara = (ISI_CHG_TARGET_S*)(void*)buff;
-    ret = mpPortModifyConfIntf(tgtModifyPara, REMOTE_SESSION_TYPE_EPL);
+    ret = ALLOCATE_PUB_STRUCTURE(sizeof(ISI_CHG_TARGET_S), (void**)&tgtModifyPara);
     if (RETURN_OK != ret)
     {
-        DBG_LogError(EPL_LOG_ID_021A, "Modify driver iSCSI info failed.");
-        return ret;
+        DBG_LogError(EPL_LOG_ID_0101, "Get memory for iSCSI add target failed.");
+        return RETURN_ERROR;      
+    }
+    tempBuff = (ISI_CHG_TARGET_S*)(void*)buff;
+    memcpy(tgtModifyPara, tempBuff, sizeof(ISI_CHG_TARGET_S));
+    ret = eplSwitchDelayHandleEvent((void*)tgtModifyPara, eplDelayHandleModifyDrvInfo, 100);
+    if (RETURN_OK != ret)
+    {
+        DBG_LogError(EPL_LOG_ID_0101, "switch delay handle failed.");
+        FREE_PUB_STRUCTURE(tgtModifyPara);
+        tgtModifyPara = NULL;
+        return RETURN_ERROR;       
     }
     return RETURN_OK;
 }
 
-/**************************************************************************
-     :  ȺյڵiSCSI tgt¼
- :  
-            buff: iSCSI tgtϢ
-            srcNid: ͽڵ
- :  
-            
- ֵ  :  
-             RETURN_OK: ɹ
-             : ʧ 
-     :  iscsi·ĽӿΪ첽
-**************************************************************************/
+
+
 void eplDoRcvIscsiConnRspMsg(void* buff)
 {
     EPL_SYNC_CONTEXT_S* context = NULL;
