mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2025-07-12 20:35:23 +02:00
net: qede: sanitize 'rc' in qede_add_tc_flower_fltr()
[ Upstream commite25714466a
] 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> Stable-dep-of:fcee2065a1
("net: qede: use return from qede_parse_flow_attr() for flower") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
32ac5cac5d
commit
c1b9c6be47
|
@ -1868,8 +1868,8 @@ int qede_add_tc_flower_fltr(struct qede_dev *edev, __be16 proto,
|
||||||
struct flow_cls_offload *f)
|
struct flow_cls_offload *f)
|
||||||
{
|
{
|
||||||
struct qede_arfs_fltr_node *n;
|
struct qede_arfs_fltr_node *n;
|
||||||
int min_hlen, rc = -EINVAL;
|
|
||||||
struct qede_arfs_tuple t;
|
struct qede_arfs_tuple t;
|
||||||
|
int min_hlen, rc;
|
||||||
|
|
||||||
__qede_lock(edev);
|
__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 */
|
/* 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;
|
goto unlock;
|
||||||
|
}
|
||||||
|
|
||||||
/* Validate profile mode and number of filters */
|
/* Validate profile mode and number of filters */
|
||||||
if ((edev->arfs->filter_count && edev->arfs->mode != t.mode) ||
|
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,
|
DP_NOTICE(edev,
|
||||||
"Filter configuration invalidated, filter mode=0x%x, configured mode=0x%x, filter count=0x%x\n",
|
"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);
|
t.mode, edev->arfs->mode, edev->arfs->filter_count);
|
||||||
|
rc = -EINVAL;
|
||||||
goto unlock;
|
goto unlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* parse tc actions and get the vf_id */
|
/* 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;
|
goto unlock;
|
||||||
|
}
|
||||||
|
|
||||||
if (qede_flow_find_fltr(edev, &t)) {
|
if (qede_flow_find_fltr(edev, &t)) {
|
||||||
rc = -EEXIST;
|
rc = -EEXIST;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user