ixgbe: dcb: IEEE PFC stats and reset logic incorrect
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / net / ethernet / intel / ixgbe / ixgbe_dcb_nl.c
index 652e4b09546db699eb4ff76189f8750bd163ca9e..2feacf698d9bdfe0386eb5f3e65de8a01e8def94 100644 (file)
@@ -662,6 +662,13 @@ static int ixgbe_dcbnl_ieee_setpfc(struct net_device *dev,
                        return -ENOMEM;
        }
 
+       if (pfc->pfc_en) {
+               adapter->last_lfc_mode = adapter->hw.fc.current_mode;
+               adapter->hw.fc.current_mode = ixgbe_fc_pfc;
+       } else {
+               adapter->hw.fc.current_mode = adapter->last_lfc_mode;
+       }
+
        prio_tc = adapter->ixgbe_ieee_ets->prio_tc;
        memcpy(adapter->ixgbe_ieee_pfc, pfc, sizeof(*adapter->ixgbe_ieee_pfc));
        return ixgbe_dcb_hw_pfc_config(&adapter->hw, pfc->pfc_en, prio_tc);