--- ./source/private_module/hdm/hdm_routine.c	2018-03-30 08:15:22.000000000 +0000
+++ ./source/private_module/hdm/hdm_routine.c.hotpatch	2020-04-10 02:53:33.000000000 +0000
@@ -1428,12 +1428,12 @@
     return;
 }
 
+#define HDM_NOTIFY_TEMP_PRINT_LIMIT (3600 * HZ)
+bool g_isNotifyTemperatureByFrame = FALSE;
 /**************************************************************************
 *     :տ֪ͨ¶
 * : 
 * : 
-*   ֵ: 
-*     : 
 **************************************************************************/
 static void hdmRtNotifyTemperatureByFrameStart(void *arg)
 {
@@ -1442,26 +1442,26 @@
     uint64_t frameWwn[2];
     uint32_t frameId = 0;
     uint32_t maxDisk = 0; 
-
     memset(frameWwn, 0, 2*sizeof(uint64_t));
     workContext = (LVOS_SCHED_WORK_S *)arg;
     usrContext = (HDM_WORK_CONTEXT_S *)workContext->pData;
-
     FREE_STRUCTURE(usrContext, HDM_WORK_POOL_ID);
-    /*Begin Modified by l00245290 DTS2015062304179 20150624*/
     usrContext = NULL;
-    /*End Modified by l00245290 DTS2015062304179 20150624*/
-
+    
+    if (g_isNotifyTemperatureByFrame == TRUE) {
+        BDM_PRINT_LIMIT_PERIOD(HDM_NOTIFY_TEMP_PRINT_LIMIT, 1, DBG_LOG_ERROR, LOG_ID_HDM_031E, "BDM_RT_SPH019: hdm is notiyfing dmi temprature.");
+        return;
+    } else {
+        g_isNotifyTemperatureByFrame = TRUE;
+    } 
     for(frameId = 0; frameId < SD_MAX_FRAME_NUMBER; frameId++)
     {
-        /*ȡWWN*/
         if (RETURN_ERROR == hdmGetFramWwn(frameId, frameWwn))
         {
             DBG_LogDebug(LOG_ID_HDM_031E,
                 "BDM_RT:Disk get enclosureWWN by frameId fail, FrameId(%u).", frameId);  
             continue;
         }
-
         /*ȡڲλ*/    
         if(RETURN_OK != OperateEnclosure(GET_DISK_MAX, frameWwn[0], &maxDisk, sizeof(uint32_t)))
         {
@@ -1491,7 +1491,7 @@
             continue;    
         }    
     }
-
+    g_isNotifyTemperatureByFrame = FALSE;
     return;
 }
 
