]> git.dujemihanovic.xyz Git - linux.git/commitdiff
net: qede: sanitize 'rc' in qede_add_tc_flower_fltr()
authorAsbjørn Sloth Tønnesen <ast@fiberby.net>
Fri, 26 Apr 2024 09:12:23 +0000 (09:12 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 29 Apr 2024 09:02:43 +0000 (10:02 +0100)
Explicitly set 'rc' (return code), before jumping to the
unlock and return path.

By not having any code depend on that 'rc' remains at
it's initial value of -EINVAL, then we can re-use 'rc' for
the return code of function calls in subsequent patches.

Only compile tested.

Signed-off-by: Asbjørn Sloth Tønnesen <ast@fiberby.net>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/qlogic/qede/qede_filter.c

index a5ac21a0ee33ff01e8bcdcf5757a76a863d6543b..8ecdfa36a6854466ca794d71fd19c9163fd1bf2e 100644 (file)
@@ -1868,8 +1868,8 @@ int qede_add_tc_flower_fltr(struct qede_dev *edev, __be16 proto,
                            struct flow_cls_offload *f)
 {
        struct qede_arfs_fltr_node *n;
-       int min_hlen, rc = -EINVAL;
        struct qede_arfs_tuple t;
+       int min_hlen, rc;
 
        __qede_lock(edev);
 
@@ -1879,8 +1879,10 @@ int qede_add_tc_flower_fltr(struct qede_dev *edev, __be16 proto,
        }
 
        /* parse flower attribute and prepare filter */
-       if (qede_parse_flow_attr(edev, proto, f->rule, &t))
+       if (qede_parse_flow_attr(edev, proto, f->rule, &t)) {
+               rc = -EINVAL;
                goto unlock;
+       }
 
        /* Validate profile mode and number of filters */
        if ((edev->arfs->filter_count && edev->arfs->mode != t.mode) ||
@@ -1888,12 +1890,15 @@ int qede_add_tc_flower_fltr(struct qede_dev *edev, __be16 proto,
                DP_NOTICE(edev,
                          "Filter configuration invalidated, filter mode=0x%x, configured mode=0x%x, filter count=0x%x\n",
                          t.mode, edev->arfs->mode, edev->arfs->filter_count);
+               rc = -EINVAL;
                goto unlock;
        }
 
        /* parse tc actions and get the vf_id */
-       if (qede_parse_actions(edev, &f->rule->action, f->common.extack))
+       if (qede_parse_actions(edev, &f->rule->action, f->common.extack)) {
+               rc = -EINVAL;
                goto unlock;
+       }
 
        if (qede_flow_find_fltr(edev, &t)) {
                rc = -EEXIST;