--- ./source/private_module/fru/fru_event.c	2020-04-29 11:47:55.883841612 +0800
+++ ./source/private_module/fru/fru_event.c.hotpatch	2020-04-28 16:59:36.559908000 +0800
@@ -1515,12 +1515,6 @@
  *           4.    : 2015-8-4
  *                 : z00211448
  *             ޸: Md for DTS2015072304142
- *           5.       : 201585
- *                    : zenghongmei 00211448
- *             ޸   : ޸ DTS2015081307475
- *           6.    : 2015-12-08
- *                 : hWX295819
- *             ޸: DTS2015120705022
  ******************************************************************************/
 OSP_VOID DPL_HandleFruPowerEvt(OSP_U32 EventType, FRU_INFO_S *FruInfo)
 {
@@ -1557,8 +1551,14 @@
 
     if (DRV_DEVT_POWER_ON_COMPLETE == EventType)
     {
-        if (RETURN_OK != DMI_CheckIntfCardValid(FruInfo, B_FALSE))
-        {
+        Ret = DMI_CheckIntfCardValid(FruInfo, B_FALSE);
+        if (Ret != RETURN_OK) {
+            if (Ret == PROBE_ERR_GET_DEV_TYPE_FAIL) {
+                DMI_LOG(WARN, 5927, "Get intf card type failed, fru id(0x%x).", FruInfo->PhyInfo.Info.FruId);
+                /* ȡʧܣʱϱϱ */
+                FruInfo->MgtInfo.ReportUpgradeRetry = B_TRUE;
+                return;
+            }	
             if (NULL != FruInfo->PhyInfo.Op.Remove)
             {
                 EnclAddr = DMI_GetDalEnclAddr(&FruInfo->NodeInfo);
@@ -2323,7 +2323,7 @@
     FRU_INFO_S *FruInfo = NULL;
     OSP_U32 EventType = 0;
     OSP_BOOL SkipEvtInRepair = B_FALSE;
-
+    OSP_BOOL isFruNeedProcess = B_FALSE;
     DRV_ASSERT(NULL != NodeInfo, return);
     DRV_ASSERT(NULL != EvtType, return);
     /*SummaryΪNULLҲܲΪNULL˲֤*/
@@ -2391,16 +2391,29 @@
     DPL_HandleFRUChipRecover(FruInfo, EventType);
 
     DPL_HandleFruCmdExhaust(FruInfo, EventType, EventInfo);
-
-    SkipEvtInRepair = DRV_DEVT_PCIEERR_REPAIR_OK != EventType &&
-        DRV_DEVT_INTF_POWER_LOST != EventType &&
-        DRV_DEVT_PCIEERR_NONFATAL != EventType &&
-        DRV_DEVT_POWER_ON_ERR != EventType &&
-        DRV_DEVT_POWER_ON_ERR_LINK != EventType &&
-        DRV_DEVT_PCIEHP_POWERFAULT != EventType &&
-        DRV_DEVT_PCIEERR_FATAL != EventType &&
-        DRV_DEVT_PCIEERR_REPAIR_FAILED != EventType;
-
+    isFruNeedProcess = ((FruInfo->NodeInfo.Type == DMI_FRU_4_FC_SMART_IOCARD) 
+        || (FruInfo->NodeInfo.Type == DMI_FRU_8_8GFC_IOC_HD_IOCARD)
+        || (FruInfo->NodeInfo.Type == DMI_FRU_8_16GFC_IOC_HD_IOCARD));
+    if (isFruNeedProcess == B_TRUE) {
+        SkipEvtInRepair = DRV_DEVT_PCIEERR_REPAIR_OK != EventType &&
+            DRV_DEVT_INTF_POWER_LOST != EventType &&
+            DRV_DEVT_PCIEERR_NONFATAL != EventType &&
+            DRV_DEVT_POWER_ON_ERR != EventType &&
+            DRV_DEVT_POWER_ON_ERR_LINK != EventType &&
+            DRV_DEVT_PCIEHP_POWERFAULT != EventType &&
+            DRV_DEVT_PCIEERR_FATAL != EventType &&
+            DRV_DEVT_PCIEERR_REPAIR_FAILED != EventType &&
+            DRV_DEVT_POWER_ON_COMPLETE != EventType;
+    } else {
+        SkipEvtInRepair = DRV_DEVT_PCIEERR_REPAIR_OK != EventType &&
+            DRV_DEVT_INTF_POWER_LOST != EventType &&
+            DRV_DEVT_PCIEERR_NONFATAL != EventType &&
+            DRV_DEVT_POWER_ON_ERR != EventType &&
+            DRV_DEVT_POWER_ON_ERR_LINK != EventType &&
+            DRV_DEVT_PCIEHP_POWERFAULT != EventType &&
+            DRV_DEVT_PCIEERR_FATAL != EventType &&
+            DRV_DEVT_PCIEERR_REPAIR_FAILED != EventType;
+    }
     /* ޸Уûн֮ǰ¼*/
     if ((0x1ULL << FAULT_BIT_PCIE_IN_REPAIR) & FruInfo->NodeInfo.FaultBit)
     {
@@ -2437,23 +2450,10 @@
         FruInfo->NodeInfo.FaultBit |= (0x1ULL << FAULT_BIT_PCIE_POWER_ERR);
     }
 
-
 }
 /* END:  DTS2014061706148    Modified by z00251534, 2014/6/21 */
 /* END:  DTS2014053103574   Modified by d90003911, 2014/6/4 */
-
 /*******************************************************************************
- * : DPL_SendHpEvent
- * : ť¼ȷ϶ʱͰβ¼
- * :
- *           1) Paramʱ˽ݣ
- * : 
- *   ֵ: void
- * ˵    : 
- * ޸ʷ:
- *           1.    : 2013-11-25
- *                 : laiyonghuan/90005887
- *             ޸: ɺ
  ******************************************************************************/
 DMI_STATIC OSP_VOID DPL_SendHpEvent(OSP_ULONG Param)
 {
