i40e: verify string count matches even on early return
authorJacob Keller <jacob.e.keller@intel.com>
Tue, 2 Jul 2019 12:22:58 +0000 (08:22 -0400)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Mon, 5 Aug 2019 18:42:05 +0000 (11:42 -0700)
Similar to i40e_get_ethtool_stats, add a goto to verify that the data
pointer for the strings lines up with the expected stats count. This
helps ensure that bugs are not introduced when adding stats.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_ethtool.c

index ceca57a261dc71956d795f0d7e26a0ac977a9a58..01e4615b1b4b39f1ad6309d6f8f533a8c3050df7 100644 (file)
@@ -2342,7 +2342,7 @@ static void i40e_get_stat_strings(struct net_device *netdev, u8 *data)
        }
 
        if (vsi != pf->vsi[pf->lan_vsi] || pf->hw.partition_id != 1)
-               return;
+               goto check_data_pointer;
 
        i40e_add_stat_strings(&data, i40e_gstrings_veb_stats);
 
@@ -2354,6 +2354,7 @@ static void i40e_get_stat_strings(struct net_device *netdev, u8 *data)
        for (i = 0; i < I40E_MAX_USER_PRIORITY; i++)
                i40e_add_stat_strings(&data, i40e_gstrings_pfc_stats, i);
 
+check_data_pointer:
        WARN_ONCE(data - p != i40e_get_stats_count(netdev) * ETH_GSTRING_LEN,
                  "stat strings count mismatch!");
 }