diff options
author | Anjali Singhai Jain <anjali.singhai@intel.com> | 2014-05-22 02:32:23 -0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2014-06-11 11:48:36 -0400 |
commit | 387ce1a97d703ae62032f802313113b856de303b (patch) | |
tree | 9a86d9b1f64ad02e733b62a95035a7b3d8a6bc85 | |
parent | 433c47de1368cf07a7cb8d9148a4d36d824b89f8 (diff) |
i40e: Fix a bug in ethtool for FD drop packet filter action
A drop action comes down as a ring_cookie value, so allow it as
a special value that can be used to configure destination control.
Also fix the output to filter read command accordingly.
Change-ID: I9956723cee42f3194885403317dd21ed4a151144
Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-rw-r--r-- | drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c index e33016620e28..4a488ffcd6b0 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c +++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c | |||
@@ -1259,7 +1259,11 @@ static int i40e_get_ethtool_fdir_entry(struct i40e_pf *pf, | |||
1259 | fsp->h_u.tcp_ip4_spec.pdst = rule->src_port; | 1259 | fsp->h_u.tcp_ip4_spec.pdst = rule->src_port; |
1260 | fsp->h_u.tcp_ip4_spec.ip4src = rule->dst_ip[0]; | 1260 | fsp->h_u.tcp_ip4_spec.ip4src = rule->dst_ip[0]; |
1261 | fsp->h_u.tcp_ip4_spec.ip4dst = rule->src_ip[0]; | 1261 | fsp->h_u.tcp_ip4_spec.ip4dst = rule->src_ip[0]; |
1262 | fsp->ring_cookie = rule->q_index; | 1262 | |
1263 | if (rule->dest_ctl == I40E_FILTER_PROGRAM_DESC_DEST_DROP_PACKET) | ||
1264 | fsp->ring_cookie = RX_CLS_FLOW_DISC; | ||
1265 | else | ||
1266 | fsp->ring_cookie = rule->q_index; | ||
1263 | 1267 | ||
1264 | return 0; | 1268 | return 0; |
1265 | } | 1269 | } |
@@ -1563,7 +1567,8 @@ static int i40e_add_fdir_ethtool(struct i40e_vsi *vsi, | |||
1563 | return -EINVAL; | 1567 | return -EINVAL; |
1564 | } | 1568 | } |
1565 | 1569 | ||
1566 | if (fsp->ring_cookie >= vsi->num_queue_pairs) | 1570 | if ((fsp->ring_cookie != RX_CLS_FLOW_DISC) && |
1571 | (fsp->ring_cookie >= vsi->num_queue_pairs)) | ||
1567 | return -EINVAL; | 1572 | return -EINVAL; |
1568 | 1573 | ||
1569 | input = kzalloc(sizeof(*input), GFP_KERNEL); | 1574 | input = kzalloc(sizeof(*input), GFP_KERNEL); |