--- ./source/private_module/iod/iod_timer.c	2019-05-17 22:01:20.000000000 +0800
+++ ./source/private_module/iod/iod_timer.c.hotpatch	2019-05-17 12:45:44.000000000 +0800
@@ -417,7 +417,7 @@
     return timerId;
 }
 
-
+void destroyTimerInner(IOD_TIMER_S *pTimer);
 /**************************************************************************
      : ɾĶʱ
  : pid--ģID
@@ -437,7 +437,7 @@
         return RETURN_ERROR;
     }
 
-    pTimer->validStatus = B_FALSE;
+    destroyTimerInner(pTimer);
 
     return RETURN_OK;
 }
@@ -575,4 +575,27 @@
 EXPORT_SYMBOL(IOD_DestroyTimer);
 EXPORT_SYMBOL(IOD_ModifyTimer);
 
+void destroyTimerInner(IOD_TIMER_S *pTimer)
+{
+    OSP_ULONG flag = 0;
+    IOD_TIMER_MGR_S *pIodTimerMgr= NULL;
 
+    pIodTimerMgr = &g_pIodGlb->timerMgr;
+    if(NULL != pTimer->iodPrivate.iodQueueNode.next)
+    {
+        spin_lock_irqsave(&pIodTimerMgr->timerLock, flag);
+        if(NULL != pTimer->iodPrivate.iodQueueNode.next)
+        {
+            list_del(&(pTimer->iodPrivate.iodQueueNode));
+            pTimer->iodPrivate.iodQueueNode.next = NULL;
+            pIodTimerMgr->uiEntryNum--;
+            list_del(&(pTimer->timerEntry));
+            pTimer->validStatus = B_FALSE;
+            freeTimer(pTimer);
+            spin_unlock_irqrestore(&pIodTimerMgr->timerLock, flag);
+            return;
+        }
+        spin_unlock_irqrestore(&pIodTimerMgr->timerLock, flag);
+    }
+    pTimer->validStatus = B_FALSE;
+}
