From: Jacob Keller <jacob.e.kel...@intel.com>

The code originally included src_ip and dst_ip with enough space to
support ipv6 filters. However, no actual support for ipv6 filters has
been implemented. Thus, remove the arrays and just use __be32 values.
Should ipv6 support be added in the future, we can replace these with
a union that has sizes for both values.

Change-Id: I1bc04032244a80eb6ebc8a4e6c723a4a665c1dd5
Signed-off-by: Jacob Keller <jacob.e.kel...@intel.com>
Tested-by: Andrew Bowers <andrewx.bow...@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirs...@intel.com>
---
 drivers/net/ethernet/intel/i40e/i40e.h         |  4 ++--
 drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 12 ++++++------
 drivers/net/ethernet/intel/i40e/i40e_txrx.c    | 12 ++++++------
 3 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/drivers/net/ethernet/intel/i40e/i40e.h 
b/drivers/net/ethernet/intel/i40e/i40e.h
index fba8495a8787..55ea1c0221e6 100644
--- a/drivers/net/ethernet/intel/i40e/i40e.h
+++ b/drivers/net/ethernet/intel/i40e/i40e.h
@@ -208,8 +208,8 @@ struct i40e_fdir_filter {
        u8 flow_type;
        u8 ip4_proto;
        /* TX packet view of src and dst */
-       __be32 dst_ip[4];
-       __be32 src_ip[4];
+       __be32 dst_ip;
+       __be32 src_ip;
        __be16 src_port;
        __be16 dst_port;
        __be32 sctp_v_tag;
diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c 
b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
index ceb57ad59e8f..7a22b473dbdd 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -2406,8 +2406,8 @@ static int i40e_get_ethtool_fdir_entry(struct i40e_pf *pf,
         */
        fsp->h_u.tcp_ip4_spec.psrc = rule->dst_port;
        fsp->h_u.tcp_ip4_spec.pdst = rule->src_port;
-       fsp->h_u.tcp_ip4_spec.ip4src = rule->dst_ip[0];
-       fsp->h_u.tcp_ip4_spec.ip4dst = rule->src_ip[0];
+       fsp->h_u.tcp_ip4_spec.ip4src = rule->dst_ip;
+       fsp->h_u.tcp_ip4_spec.ip4dst = rule->src_ip;
 
        if (rule->dest_ctl == I40E_FILTER_PROGRAM_DESC_DEST_DROP_PACKET)
                fsp->ring_cookie = RX_CLS_FLOW_DISC;
@@ -2630,8 +2630,8 @@ static int i40e_set_rss_hash_opt(struct i40e_pf *pf, 
struct ethtool_rxnfc *nfc)
 static bool i40e_match_fdir_input_set(struct i40e_fdir_filter *rule,
                                      struct i40e_fdir_filter *input)
 {
-       if ((rule->dst_ip[0] != input->dst_ip[0]) ||
-           (rule->src_ip[0] != input->src_ip[0]) ||
+       if ((rule->dst_ip != input->dst_ip) ||
+           (rule->src_ip != input->src_ip) ||
            (rule->dst_port != input->dst_port) ||
            (rule->src_port != input->src_port))
                return false;
@@ -2807,8 +2807,8 @@ static int i40e_add_fdir_ethtool(struct i40e_vsi *vsi,
         */
        input->dst_port = fsp->h_u.tcp_ip4_spec.psrc;
        input->src_port = fsp->h_u.tcp_ip4_spec.pdst;
-       input->dst_ip[0] = fsp->h_u.tcp_ip4_spec.ip4src;
-       input->src_ip[0] = fsp->h_u.tcp_ip4_spec.ip4dst;
+       input->dst_ip = fsp->h_u.tcp_ip4_spec.ip4src;
+       input->src_ip = fsp->h_u.tcp_ip4_spec.ip4dst;
 
        if (ntohl(fsp->m_ext.data[1])) {
                vf_id = ntohl(fsp->h_ext.data[1]);
diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c 
b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
index 6eb5dc4168f3..c4d3a40a3f10 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
@@ -219,9 +219,9 @@ static int i40e_add_del_fdir_udpv4(struct i40e_vsi *vsi,
        udp = (struct udphdr *)(raw_packet + IP_HEADER_OFFSET
              + sizeof(struct iphdr));
 
-       ip->daddr = fd_data->dst_ip[0];
+       ip->daddr = fd_data->dst_ip;
        udp->dest = fd_data->dst_port;
-       ip->saddr = fd_data->src_ip[0];
+       ip->saddr = fd_data->src_ip;
        udp->source = fd_data->src_port;
 
        fd_data->pctype = I40E_FILTER_PCTYPE_NONF_IPV4_UDP;
@@ -281,9 +281,9 @@ static int i40e_add_del_fdir_tcpv4(struct i40e_vsi *vsi,
        tcp = (struct tcphdr *)(raw_packet + IP_HEADER_OFFSET
              + sizeof(struct iphdr));
 
-       ip->daddr = fd_data->dst_ip[0];
+       ip->daddr = fd_data->dst_ip;
        tcp->dest = fd_data->dst_port;
-       ip->saddr = fd_data->src_ip[0];
+       ip->saddr = fd_data->src_ip;
        tcp->source = fd_data->src_port;
 
        if (add) {
@@ -359,8 +359,8 @@ static int i40e_add_del_fdir_ipv4(struct i40e_vsi *vsi,
                memcpy(raw_packet, packet, I40E_IP_DUMMY_PACKET_LEN);
                ip = (struct iphdr *)(raw_packet + IP_HEADER_OFFSET);
 
-               ip->saddr = fd_data->src_ip[0];
-               ip->daddr = fd_data->dst_ip[0];
+               ip->saddr = fd_data->src_ip;
+               ip->daddr = fd_data->dst_ip;
                ip->protocol = 0;
 
                fd_data->pctype = i;
-- 
2.12.0

Reply via email to