]> git.baikalelectronics.ru Git - kernel.git/commitdiff
dpaa2-switch: fix default return of dpaa2_switch_flower_parse_mirror_key
authorTom Rix <trix@redhat.com>
Mon, 14 Feb 2022 15:41:39 +0000 (07:41 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 15 Feb 2022 14:31:43 +0000 (14:31 +0000)
Clang static analysis reports this representative problem
dpaa2-switch-flower.c:616:24: warning: The right operand of '=='
  is a garbage value
  tmp->cfg.vlan_id == vlan) {
                   ^  ~~~~
vlan is set in dpaa2_switch_flower_parse_mirror_key(). However
this function can return success without setting vlan.  So
change the default return to -EOPNOTSUPP.

Fixes: cc91dac254bd ("dpaa2-switch: add VLAN based mirroring")
Signed-off-by: Tom Rix <trix@redhat.com>
Reviewed-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/dpaa2/dpaa2-switch-flower.c

index d6eefbbf163fa1517fe9137be9bb73e1df95185b..cacd454ac696c90a0a27d3cf641b150e800ddda0 100644 (file)
@@ -532,6 +532,7 @@ static int dpaa2_switch_flower_parse_mirror_key(struct flow_cls_offload *cls,
        struct flow_rule *rule = flow_cls_offload_flow_rule(cls);
        struct flow_dissector *dissector = rule->match.dissector;
        struct netlink_ext_ack *extack = cls->common.extack;
+       int ret = -EOPNOTSUPP;
 
        if (dissector->used_keys &
            ~(BIT(FLOW_DISSECTOR_KEY_BASIC) |
@@ -561,9 +562,10 @@ static int dpaa2_switch_flower_parse_mirror_key(struct flow_cls_offload *cls,
                }
 
                *vlan = (u16)match.key->vlan_id;
+               ret = 0;
        }
 
-       return 0;
+       return ret;
 }
 
 static int