Passing v6 argument is unnecessary as flow_type is still
analyzed inside the function.

Reviewed-by: Przemek Kitszel <przemyslaw.kits...@intel.com>
Signed-off-by: Lukasz Plachno <lukasz.plac...@intel.com>
Reviewed-by: Simon Horman <ho...@kernel.org>
---
 drivers/net/ethernet/intel/ice/ice_fdir.c | 85 +++++++++++------------
 1 file changed, 39 insertions(+), 46 deletions(-)

diff --git a/drivers/net/ethernet/intel/ice/ice_fdir.c 
b/drivers/net/ethernet/intel/ice/ice_fdir.c
index 5840c3e04a5b..1f7b26f38818 100644
--- a/drivers/net/ethernet/intel/ice/ice_fdir.c
+++ b/drivers/net/ethernet/intel/ice/ice_fdir.c
@@ -1189,52 +1189,54 @@ static int ice_cmp_ipv6_addr(__be32 *a, __be32 *b)
  * ice_fdir_comp_rules - compare 2 filters
  * @a: a Flow Director filter data structure
  * @b: a Flow Director filter data structure
- * @v6: bool true if v6 filter
  *
  * Returns true if the filters match
  */
 static bool
-ice_fdir_comp_rules(struct ice_fdir_fltr *a,  struct ice_fdir_fltr *b, bool v6)
+ice_fdir_comp_rules(struct ice_fdir_fltr *a,  struct ice_fdir_fltr *b)
 {
        enum ice_fltr_ptype flow_type = a->flow_type;
 
        /* The calling function already checks that the two filters have the
         * same flow_type.
         */
-       if (!v6) {
-               if (flow_type == ICE_FLTR_PTYPE_NONF_IPV4_TCP ||
-                   flow_type == ICE_FLTR_PTYPE_NONF_IPV4_UDP ||
-                   flow_type == ICE_FLTR_PTYPE_NONF_IPV4_SCTP) {
-                       if (a->ip.v4.dst_ip == b->ip.v4.dst_ip &&
-                           a->ip.v4.src_ip == b->ip.v4.src_ip &&
-                           a->ip.v4.dst_port == b->ip.v4.dst_port &&
-                           a->ip.v4.src_port == b->ip.v4.src_port)
-                               return true;
-               } else if (flow_type == ICE_FLTR_PTYPE_NONF_IPV4_OTHER) {
-                       if (a->ip.v4.dst_ip == b->ip.v4.dst_ip &&
-                           a->ip.v4.src_ip == b->ip.v4.src_ip &&
-                           a->ip.v4.l4_header == b->ip.v4.l4_header &&
-                           a->ip.v4.proto == b->ip.v4.proto &&
-                           a->ip.v4.ip_ver == b->ip.v4.ip_ver &&
-                           a->ip.v4.tos == b->ip.v4.tos)
-                               return true;
-               }
-       } else {
-               if (flow_type == ICE_FLTR_PTYPE_NONF_IPV6_UDP ||
-                   flow_type == ICE_FLTR_PTYPE_NONF_IPV6_TCP ||
-                   flow_type == ICE_FLTR_PTYPE_NONF_IPV6_SCTP) {
-                       if (a->ip.v6.dst_port == b->ip.v6.dst_port &&
-                           a->ip.v6.src_port == b->ip.v6.src_port &&
-                           !ice_cmp_ipv6_addr(a->ip.v6.dst_ip,
-                                              b->ip.v6.dst_ip) &&
-                           !ice_cmp_ipv6_addr(a->ip.v6.src_ip,
-                                              b->ip.v6.src_ip))
-                               return true;
-               } else if (flow_type == ICE_FLTR_PTYPE_NONF_IPV6_OTHER) {
-                       if (a->ip.v6.dst_port == b->ip.v6.dst_port &&
-                           a->ip.v6.src_port == b->ip.v6.src_port)
-                               return true;
-               }
+       switch (flow_type) {
+       case ICE_FLTR_PTYPE_NONF_IPV4_TCP:
+       case ICE_FLTR_PTYPE_NONF_IPV4_UDP:
+       case ICE_FLTR_PTYPE_NONF_IPV4_SCTP:
+               if (a->ip.v4.dst_ip == b->ip.v4.dst_ip &&
+                   a->ip.v4.src_ip == b->ip.v4.src_ip &&
+                   a->ip.v4.dst_port == b->ip.v4.dst_port &&
+                   a->ip.v4.src_port == b->ip.v4.src_port)
+                       return true;
+               break;
+       case ICE_FLTR_PTYPE_NONF_IPV4_OTHER:
+               if (a->ip.v4.dst_ip == b->ip.v4.dst_ip &&
+                   a->ip.v4.src_ip == b->ip.v4.src_ip &&
+                   a->ip.v4.l4_header == b->ip.v4.l4_header &&
+                   a->ip.v4.proto == b->ip.v4.proto &&
+                   a->ip.v4.ip_ver == b->ip.v4.ip_ver &&
+                   a->ip.v4.tos == b->ip.v4.tos)
+                       return true;
+               break;
+       case ICE_FLTR_PTYPE_NONF_IPV6_UDP:
+       case ICE_FLTR_PTYPE_NONF_IPV6_TCP:
+       case ICE_FLTR_PTYPE_NONF_IPV6_SCTP:
+               if (a->ip.v6.dst_port == b->ip.v6.dst_port &&
+                   a->ip.v6.src_port == b->ip.v6.src_port &&
+                   !ice_cmp_ipv6_addr(a->ip.v6.dst_ip,
+                                      b->ip.v6.dst_ip) &&
+                   !ice_cmp_ipv6_addr(a->ip.v6.src_ip,
+                                      b->ip.v6.src_ip))
+                       return true;
+               break;
+       case ICE_FLTR_PTYPE_NONF_IPV6_OTHER:
+               if (a->ip.v6.dst_port == b->ip.v6.dst_port &&
+                   a->ip.v6.src_port == b->ip.v6.src_port)
+                       return true;
+               break;
+       default:
+               break;
        }
 
        return false;
@@ -1253,19 +1255,10 @@ bool ice_fdir_is_dup_fltr(struct ice_hw *hw, struct 
ice_fdir_fltr *input)
        bool ret = false;
 
        list_for_each_entry(rule, &hw->fdir_list_head, fltr_node) {
-               enum ice_fltr_ptype flow_type;
-
                if (rule->flow_type != input->flow_type)
                        continue;
 
-               flow_type = input->flow_type;
-               if (flow_type == ICE_FLTR_PTYPE_NONF_IPV4_TCP ||
-                   flow_type == ICE_FLTR_PTYPE_NONF_IPV4_UDP ||
-                   flow_type == ICE_FLTR_PTYPE_NONF_IPV4_SCTP ||
-                   flow_type == ICE_FLTR_PTYPE_NONF_IPV4_OTHER)
-                       ret = ice_fdir_comp_rules(rule, input, false);
-               else
-                       ret = ice_fdir_comp_rules(rule, input, true);
+               ret = ice_fdir_comp_rules(rule, input);
                if (ret) {
                        if (rule->fltr_id == input->fltr_id &&
                            rule->q_index != input->q_index)
-- 
2.34.1

Reply via email to