igc: Add condition for qbv_config_change_errors counter
authorMuhammad Husaini Zulkifli <muhammad.husaini.zulkifli@intel.com>
Mon, 15 May 2023 06:03:36 +0000 (14:03 +0800)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Wed, 5 Jul 2023 17:21:33 +0000 (10:21 -0700)
Add condition to increase the qbv counter during taprio qbv
configuration only.

There might be a case when TC already been setup then user configure
the ETF/CBS qdisc and this counter will increase if no condition above.

Fixes: ae4fe4698300 ("igc: Add qbv_config_change_errors counter")
Signed-off-by: Muhammad Husaini Zulkifli <muhammad.husaini.zulkifli@intel.com>
Tested-by: Naama Meir <naamax.meir@linux.intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/igc/igc.h
drivers/net/ethernet/intel/igc/igc_main.c
drivers/net/ethernet/intel/igc/igc_tsn.c

index 00a5ee48781275a1494dd06d5a4550c26b16a68b..aa5ceab0d37131808c7f73f61037a9383450676d 100644 (file)
@@ -184,6 +184,7 @@ struct igc_adapter {
        u32 max_frame_size;
        u32 min_frame_size;
 
+       int tc_setup_type;
        ktime_t base_time;
        ktime_t cycle_time;
        bool qbv_enable;
index 019ce91c45aaf60a81d10973b25bd01874f8c5fa..b90f945110053c83ed8197a2e44ef45f926319af 100644 (file)
@@ -6327,6 +6327,8 @@ static int igc_setup_tc(struct net_device *dev, enum tc_setup_type type,
 {
        struct igc_adapter *adapter = netdev_priv(dev);
 
+       adapter->tc_setup_type = type;
+
        switch (type) {
        case TC_QUERY_CAPS:
                return igc_tc_query_caps(adapter, type_data);
index 94a2b0dfb54d40b7fd00dfac8b47a8a95a96b90d..6b299b83e7ef2359dc01a1d381354acc8fa67510 100644 (file)
@@ -249,6 +249,7 @@ skip_cbs:
                 * Gate Control List (GCL) is running.
                 */
                if ((rd32(IGC_BASET_H) || rd32(IGC_BASET_L)) &&
+                   (adapter->tc_setup_type == TC_SETUP_QDISC_TAPRIO) &&
                    tsn_mode_reconfig)
                        adapter->qbv_config_change_errors++;
        } else {