--- ./source/private_module/src/bsp_dev.c	2019-06-24 09:48:53.972962597 +0000
+++ ./source/private_module/src/bsp_dev.c.hotpatch	2019-06-25 07:01:16.092335000 +0000
@@ -376,7 +376,7 @@
     return Plane;
 }
 
-
+OSP_BOOL BSP_patchIsCtrlResetQuick(OSP_U64 v_uiCtrlReset);
 /*****************************************************************************
      : IrqHandPeerBoardFunc
    : ԰жϷʱжϴ
@@ -420,7 +420,13 @@
 /* BEGIN: Added by JiangYong KF58974, 2014/04/18 ⵥ: DTS2014032804875 ޸ԭ: λʱѯλ״̬Ľӿ */	
     QueryCtrlBoardStatusChange(&ulData);
 /* END: Added by JiangYong KF58974, 2014/04/18 ⵥ: DTS2014032804875 */
-
+    /* ֻҪ1״θλ10ӺλҪִжϻص; ִжϣжϻصִƵ */
+    if (BSP_patchIsCtrlResetQuick(ulData))
+    {
+        BSP_LOG_LIMIT(DBGLEVEL_WARN, 0x123, 1, BSP_SECOND_TO_JIFFS(BSP_SECONDS_PER_MIN), 
+                    "V5R7C30SPC100SPH105 Ctrl reset bitmap 0x%x, all reset in 10 seconds, not handle interrupt.", ulData); 
+        return IRQ_HANDLED;
+    }
     if (NULL == PeerBoardHandlerForPcie)
     {
         BSP_TRACE(DBGLEVEL_INFO, 2356, "The interrupt fuction peerboard of registting IRQ for pcie is NULL.");
@@ -428,12 +434,9 @@
     else
     {
         BSP_TRACE(DBGLEVEL_INFO, 2357, "Begin to handle peerboard IRQ for pcie.");
-/* BEGIN: Added by JiangYong KF58974, 2014/04/18 ⵥ: DTS2014032804875 ޸ԭ: λʱѯλ״̬Ľӿ */	
 	    PeerBoardHandlerForPcie((OSP_VOID *) ulData);
-/* END: Added by JiangYong KF58974, 2014/04/18 ⵥ: DTS2014032804875 */
     }
 
-/* BEGIN: Added by JiangYong KF58974, 2014/03/28 ⵥ: DTS2014032804875 ޸ԭ: λʱѯλ״̬Ľӿ */
     if (NULL == CtrlBoardStatusChange)
     {
         BSP_TRACE(DBGLEVEL_ERR, 2358, "The interrupt fuction ctrl board of registting IRQ is NULL.");
@@ -443,7 +446,6 @@
         BSP_TRACE(DBGLEVEL_INFO, 2359, "Begin to handle board status change IRQ.");
         CtrlBoardStatusChange((OSP_VOID *) ulData);
     }
-/* END: Added by JiangYong KF58974, 2014/03/28 ⵥ: DTS2014032804875 */
 
     if (NULL == PeerBoardHandler)
     {
@@ -452,9 +454,7 @@
     else
     {
         BSP_TRACE(DBGLEVEL_INFO, 2361, "Begin to handle peerboard IRQ.");
-/* BEGIN: Added by JiangYong KF58974, 2014/04/18 ⵥ: DTS2014032804875 ޸ԭ: λʱѯλ״̬Ľӿ */	
         PeerBoardHandler((OSP_VOID *) ulData);
-/* END: Added by JiangYong KF58974, 2014/04/18 ⵥ: DTS2014032804875 */
     }
 
 /* BEGIN: Added by JiangYong KF58974, 2014/04/18 ⵥ: DTS2014032804875 ޸ԭ: λʱѯλ״̬Ľӿ */
@@ -9991,3 +9991,63 @@
 
 }
 
+/*****************************************************************************
+     : BSP_IsCtrlResetQuick
+   : :иλĿ(bitmap)Ƿ10λ
+             ;:жƵֹԿcpld߼쳣ͣϱжϵ±ϵͳ쳣
+             false:bitmapָпڿ10λ
+             true:bitmapָп10λ
+   : OSP_U32 v_uiCtrlReset λbitmap
+   : 
+   ֵ  : OSP_BOOL
+
+ ޸ʷ	   :
+  1.	     : 2019426
+		     : xionglichun
+	޸   : ɺ
+*****************************************************************************/
+OSP_ULONG g_BSP_CtrlResetTime[4] = {0,0,0,0}; /* ¼4λʱ䣬ʼΪ0 */
+OSP_BOOL BSP_patchIsCtrlResetQuick(OSP_U64 v_uiCtrlReset)
+{
+    OSP_U32 uiTotal = 0;
+    OSP_U32 i = 0;
+    OSP_ULONG ullTimeWait = 0;
+    OSP_BOOL bResetQuick = TRUE; /* ĬиλĿ10ڸλ */
+    OSP_BOOL bLongTimeReset = FALSE;
+    OSP_BOOL bIsCtrlRst = FALSE;
+    
+    if (RETURN_OK != Native_GetTotalControllerSlotNumber(&uiTotal))
+    {
+        BSP_TRACE(DBGLEVEL_ERR, 2351, "V5R7C30SPC100SPH105 Get total controller slot number failed.");
+        return FALSE;
+    }
+    /* ڿӣg_BSP_CtrlResetTimeС */
+    if (uiTotal > 4)
+    {
+        BSP_TRACE(DBGLEVEL_ERR, 0xDEAD, "V5R7C30SPC100SPH105 Ctrl number 0x%x is bigger than 0x4.", uiTotal);
+        return FALSE;
+    }
+    
+    /* ֻҪ1״θλ10ӺλͷFALSE */
+    ullTimeWait = 10 * ((OSP_ULONG)msecs_to_jiffies(1000)); /* 10 */
+    for (i = 0; i < uiTotal; i++)
+    {
+        /* λγ */
+        bIsCtrlRst = (0 != (v_uiCtrlReset & (1UL << i)));
+        if (bIsCtrlRst)
+        {
+            /* ״θλ10Ӻλ */
+            bLongTimeReset = (0 == g_BSP_CtrlResetTime[i])
+                           ||(time_after(jiffies, g_BSP_CtrlResetTime[i] + ullTimeWait));
+            if (bLongTimeReset)
+            {
+                bResetQuick = FALSE;
+                g_BSP_CtrlResetTime[i] = jiffies;
+            }
+        }
+    }
+    
+    return bResetQuick;
+}
+
+
