summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/intel/ice
diff options
context:
space:
mode:
authorMichal Swiatkowski <michal.swiatkowski@linux.intel.com>2023-10-24 13:09:23 +0200
committerTony Nguyen <anthony.l.nguyen@intel.com>2023-11-13 11:42:14 -0800
commitdeb53f2030e7db0e5f9c0b1ffdfd4fa43aa10ce5 (patch)
tree32f0d8cb9dc16e57c165b1f34a08692d307622fa /drivers/net/ethernet/intel/ice
parent604283e95eb0b2f4f38238e7acec4f1d68e00e2e (diff)
ice: return pointer to representor
In follow up patches it will be easier to obtain created port representor pointer instead of the id. Without it the pattern from eswitch side will look like: - create PR - get PR based on the id Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com> Reviewed-by: Jacob Keller <jacob.e.keller@intel.com> Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> Tested-by: Sujai Buvaneswaran <sujai.buvaneswaran@intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/ice')
-rw-r--r--drivers/net/ethernet/intel/ice/ice_repr.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/net/ethernet/intel/ice/ice_repr.c b/drivers/net/ethernet/intel/ice/ice_repr.c
index fce25472d053..b29a3d010780 100644
--- a/drivers/net/ethernet/intel/ice/ice_repr.c
+++ b/drivers/net/ethernet/intel/ice/ice_repr.c
@@ -382,7 +382,7 @@ err_alloc:
return ERR_PTR(err);
}
-static int ice_repr_add_vf(struct ice_vf *vf)
+static struct ice_repr *ice_repr_add_vf(struct ice_vf *vf)
{
struct ice_repr *repr;
struct ice_vsi *vsi;
@@ -390,11 +390,11 @@ static int ice_repr_add_vf(struct ice_vf *vf)
vsi = ice_get_vf_vsi(vf);
if (!vsi)
- return -EINVAL;
+ return ERR_PTR(-ENOENT);
err = ice_devlink_create_vf_port(vf);
if (err)
- return err;
+ return ERR_PTR(err);
repr = ice_repr_add(vf->pf, vsi, vf->hw_lan_addr);
if (IS_ERR(repr)) {
@@ -416,13 +416,13 @@ static int ice_repr_add_vf(struct ice_vf *vf)
ice_virtchnl_set_repr_ops(vf);
- return 0;
+ return repr;
err_netdev:
ice_repr_rem(&vf->pf->eswitch.reprs, repr);
err_repr_add:
ice_devlink_destroy_vf_port(vf);
- return err;
+ return ERR_PTR(err);
}
/**
@@ -432,6 +432,7 @@ err_repr_add:
int ice_repr_add_for_all_vfs(struct ice_pf *pf)
{
struct devlink *devlink;
+ struct ice_repr *repr;
struct ice_vf *vf;
unsigned int bkt;
int err;
@@ -439,9 +440,11 @@ int ice_repr_add_for_all_vfs(struct ice_pf *pf)
lockdep_assert_held(&pf->vfs.table_lock);
ice_for_each_vf(pf, bkt, vf) {
- err = ice_repr_add_vf(vf);
- if (err)
+ repr = ice_repr_add_vf(vf);
+ if (IS_ERR(repr)) {
+ err = PTR_ERR(repr);
goto err;
+ }
}
/* only export if ADQ and DCB disabled */