Merge branch 'vcap_get_rule-return-value'

Ruan Jinjie says:

====================
net: Update and fix return value check for vcap_get_rule()

As Simon Horman suggests, update vcap_get_rule() to always
return an ERR_PTR() and update the error detection conditions to
use IS_ERR(), which would be more cleaner.

So se IS_ERR() to update the return value and fix the issue
in lan966x_ptp_add_trap().

Changes in v2:
- Update vcap_get_rule() to always return an ERR_PTR().
- Update the return value fix in lan966x_ptp_add_trap().
- Update the return value check in sparx5_tc_free_rule_resources().
====================

Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
David S. Miller 2023-08-19 19:29:23 +01:00
commit 85c786340a
3 changed files with 4 additions and 4 deletions

View File

@ -59,7 +59,7 @@ static int lan966x_ptp_add_trap(struct lan966x_port *port,
int err; int err;
vrule = vcap_get_rule(lan966x->vcap_ctrl, rule_id); vrule = vcap_get_rule(lan966x->vcap_ctrl, rule_id);
if (vrule) { if (!IS_ERR(vrule)) {
u32 value, mask; u32 value, mask;
/* Just modify the ingress port mask and exit */ /* Just modify the ingress port mask and exit */
@ -106,7 +106,7 @@ static int lan966x_ptp_del_trap(struct lan966x_port *port,
int err; int err;
vrule = vcap_get_rule(lan966x->vcap_ctrl, rule_id); vrule = vcap_get_rule(lan966x->vcap_ctrl, rule_id);
if (!vrule) if (IS_ERR(vrule))
return -EEXIST; return -EEXIST;
vcap_rule_get_key_u32(vrule, VCAP_KF_IF_IGR_PORT_MASK, &value, &mask); vcap_rule_get_key_u32(vrule, VCAP_KF_IF_IGR_PORT_MASK, &value, &mask);

View File

@ -1274,7 +1274,7 @@ static int sparx5_tc_free_rule_resources(struct net_device *ndev,
int ret = 0; int ret = 0;
vrule = vcap_get_rule(vctrl, rule_id); vrule = vcap_get_rule(vctrl, rule_id);
if (!vrule || IS_ERR(vrule)) if (IS_ERR(vrule))
return -EINVAL; return -EINVAL;
sparx5_tc_free_psfp_resources(sparx5, vrule); sparx5_tc_free_psfp_resources(sparx5, vrule);

View File

@ -2429,7 +2429,7 @@ struct vcap_rule *vcap_get_rule(struct vcap_control *vctrl, u32 id)
elem = vcap_get_locked_rule(vctrl, id); elem = vcap_get_locked_rule(vctrl, id);
if (!elem) if (!elem)
return NULL; return ERR_PTR(-ENOENT);
rule = vcap_decode_rule(elem); rule = vcap_decode_rule(elem);
mutex_unlock(&elem->admin->lock); mutex_unlock(&elem->admin->lock);