i40e: explicitly fail on extended MAC field for ethtool_rx_flow_spec
authorJacob Keller <jacob.e.keller@intel.com>
Mon, 6 Feb 2017 22:39:12 +0000 (14:39 -0800)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Mon, 20 Mar 2017 23:45:22 +0000 (16:45 -0700)
Although we will fail the filter later due to checking flow_type which
will have a bogus invalid type, it is possible future refactoring will
remove this hidden failure case. Avoid a possible issue in the future by
explicitly checking the flow type at the start.

Change-Id: Ia98eb26f7b93ccbe38c7141e8f203ef496fc6598
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 d16a5a6b24fc27dc9ad1e2d6e6b637c32c99a56d..905d66e87247873b6b71f35e8a0d27590241426b 100644 (file)
@@ -2771,6 +2771,10 @@ static int i40e_add_fdir_ethtool(struct i40e_vsi *vsi,
 
        fsp = (struct ethtool_rx_flow_spec *)&cmd->fs;
 
+       /* Extended MAC field is not supported */
+       if (fsp->flow_type & FLOW_MAC_EXT)
+               return -EINVAL;
+
        if (fsp->location >= (pf->hw.func_caps.fd_filters_best_effort +
                              pf->hw.func_caps.fd_filters_guaranteed)) {
                return -EINVAL;