--- ./source/private_module/ioc/ioc_iob.c	2018-02-28 03:42:45.000000000 +0000
+++ ./source/private_module/ioc/ioc_iob.c.hotpatch	2018-08-31 06:14:44.000000000 +0000
@@ -70,11 +70,11 @@
  * ڲԭ˵                             *
  *----------------------------------------------*/
 UNF_U32 IOC_IobSendQueueFlush(IOC_HBA_S * pstHba);
-
+UNF_VOID IOC_CopyReqTagContextPatch(const IOC_REQ_TAG_CONTEXT_S *pstOldReqTagContex, 
+                               IOC_REQ_TAG_CONTEXT_S *pstReqTagContext);
 /*----------------------------------------------*
  * ȫֱ                                     *
  *----------------------------------------------*/
-
 /*----------------------------------------------*
  * ģ鼶                                   *
  *----------------------------------------------*/
@@ -1949,11 +1949,11 @@
     IOC_QUEUE_S *pstFcpRspQueue = NULL;
     UNF_U16 usFcpQueueID = 0;
     UNF_U16 usElsQueueID = 0;
-    UNF_U32 uiReqTagTemp = UNF_ZERO;
+
     UNF_U16 usFcfi = UNF_ZERO;
     UNF_U8 aucIob[IOC_WR_QUEUE_ELEM_SIZE] = {0};
     UNF_U32 uiRet = RETURN_ERROR;
-    UNF_OS_STLISTHEAD stTmpListEntry = {0};
+
 
     IOC_CHECK(INVALID_VALUE32, NULL != pstHba, return RETURN_ERROR);
     IOC_CHECK(INVALID_VALUE32, NULL != pstOldReqTagContext, return RETURN_ERROR);
@@ -2012,13 +2012,13 @@
     pstIob->uiFabricName[1] = pstHba->uiRemoteHighNodeName;
     pstIob->uiFabricType = (UNF_ACT_TOP_P2P_FABRIC == pstHba->enActiveTopo) ? 1 : 0;
     
-    /* (3)ҪϢReqTagContext */
-    uiReqTagTemp = pstReqTagContext->uiReqTagIndex;
-    stTmpListEntry = pstReqTagContext->stListEntry;
-    UNF_OS_MEMCPY(pstReqTagContext, pstOldReqTagContext, sizeof(IOC_REQ_TAG_CONTEXT_S));
-    pstReqTagContext->uiReqTagIndex = uiReqTagTemp;
-    pstReqTagContext->stListEntry = stTmpListEntry;
+    /* (3)ֻҪϢReqTagContext */
+
+
     pstReqTagContext->pstFiFoEntry = pstCurrentEntry;
+
+    IOC_CopyReqTagContextPatch(pstOldReqTagContext, pstReqTagContext);
+
     /*ϢcontextյReg Vpf responsereg imageʱʹ*/
 
     uiRet = IOC_CheckRegVpfIob(pstIob);
@@ -2353,10 +2353,10 @@
 {
     IOB_REG_IMAGE_S * pstIob = NULL;
     IOC_REQ_TAG_CONTEXT_S * pstReqTagContext = NULL;
-    UNF_U32 uiReqTagTemp = 0;
+
     UNF_U8 aucIob[IOC_WR_QUEUE_ELEM_SIZE] = {0};
     UNF_U32 uiRet = RETURN_ERROR;
-    UNF_OS_STLISTHEAD stTmpListEntry = {0};
+
 
     IOC_CHECK(INVALID_VALUE32, NULL != pstHba, return RETURN_ERROR);
     IOC_CHECK(INVALID_VALUE32, NULL != pstOldReqTagContext, return RETURN_ERROR);
@@ -2393,13 +2393,13 @@
     }
 
     /* (3)ҪϢReqTagContext */
-    uiReqTagTemp = pstReqTagContext->uiReqTagIndex;
-    stTmpListEntry = pstReqTagContext->stListEntry;
-    UNF_OS_MEMCPY(pstReqTagContext, pstOldReqTagContext, sizeof(IOC_REQ_TAG_CONTEXT_S));
-    pstReqTagContext->uiReqTagIndex = uiReqTagTemp;
-    pstReqTagContext->stListEntry = stTmpListEntry;
-    pstReqTagContext->pstFiFoEntry = pstCurrentEntry;
 
+
+
+
+
+    pstReqTagContext->pstFiFoEntry = pstCurrentEntry;
+    IOC_CopyReqTagContextPatch(pstOldReqTagContext,pstReqTagContext);
     /* (4)iob */
     uiRet = IOC_EnqueueElsIob(pstHba, pstIob);
     
@@ -3090,4 +3090,60 @@
     return uiRet;
 }
 
-
+/*****************************************************************************
+     : IOC_CopyReqTagContext
+   : req tag context
+   : IOC_REQ_TAG_CONTEXT_S *pstOldReqTagContex  
+             IOC_REQ_TAG_CONTEXT_S *pstReqTagContext    
+   : 
+   ֵ  : UNF_VOID
+ ú  : 
+   : 
+ 
+ ޸ʷ      :
+  1.       : 201365
+           : z00228969
+    ޸   : ɺ
+  2.       : 2018723
+           : q00382532
+    ޸   : DTS2018072303406list_entryңwatchdogֻҪϢ
+*****************************************************************************/
+UNF_VOID IOC_CopyReqTagContextPatch(const IOC_REQ_TAG_CONTEXT_S *pstOldReqTagContex, 
+                               IOC_REQ_TAG_CONTEXT_S *pstReqTagContext)
+{
+    UNF_CHECK_VALID(0x5018, UNF_B_TRUE, NULL != pstOldReqTagContex, return);
+    UNF_CHECK_VALID(0x5019, UNF_B_TRUE, NULL != pstReqTagContext, return);
+
+    pstReqTagContext->usIobType = pstOldReqTagContex->usIobType;
+    UNF_OS_MEMCPY(pstReqTagContext->aucNodeName, 
+                  pstOldReqTagContex->aucNodeName, 
+                  UNF_WWN_LEN);
+    UNF_OS_MEMCPY(pstReqTagContext->aucPortName, 
+                  pstOldReqTagContex->aucPortName, 
+                  UNF_WWN_LEN);    
+    UNF_OS_MEMCPY(pstReqTagContext->aucFcfMac, 
+                  pstOldReqTagContex->aucFcfMac, 
+                  UNF_MAC_LEN);
+    pstReqTagContext->usVlanId = pstOldReqTagContex->usVlanId;
+    pstReqTagContext->usVpi    = pstOldReqTagContex->usVpi;
+    pstReqTagContext->usRpi    = pstOldReqTagContex->usRpi;
+    pstReqTagContext->usFcfi   = pstOldReqTagContex->usFcfi;
+    pstReqTagContext->uiLocalId = pstOldReqTagContex->uiLocalId;
+    pstReqTagContext->uiRemoteId = pstOldReqTagContex->uiRemoteId;
+    pstReqTagContext->usRxSize = pstOldReqTagContex->usRxSize;
+    pstReqTagContext->uiHotPoolTag = pstOldReqTagContex->uiHotPoolTag;
+    pstReqTagContext->pvPayloadAddr = pstOldReqTagContex->pvPayloadAddr;
+    pstReqTagContext->uiBufLen = pstOldReqTagContex->uiBufLen;
+    pstReqTagContext->uiCmnd = pstOldReqTagContex->uiCmnd;
+    pstReqTagContext->uiTimeOutValue = pstOldReqTagContex->uiTimeOutValue;
+    pstReqTagContext->usOxId = pstOldReqTagContex->usOxId;
+    pstReqTagContext->uiType = pstOldReqTagContex->uiType;
+    pstReqTagContext->ulStartJif = pstOldReqTagContex->ulStartJif;
+    pstReqTagContext->ulEnqueuFifoJif = pstOldReqTagContex->ulEnqueuFifoJif;
+    pstReqTagContext->ulEnqueuElsJif = pstOldReqTagContex->ulEnqueuElsJif;
+    pstReqTagContext->ulFreeJif = pstOldReqTagContex->ulFreeJif;
+    pstReqTagContext->pstHba = pstOldReqTagContex->pstHba;
+    pstReqTagContext->uiComFlag = pstOldReqTagContex->uiComFlag;
+    
+    return;
+}
