Skip to content

Commit

Permalink
ice: return pointer to representor
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Michal Swiatkowski authored and Tony Nguyen committed Nov 13, 2023
1 parent 604283e commit deb53f2
Showing 1 changed file with 10 additions and 7 deletions.
17 changes: 10 additions & 7 deletions drivers/net/ethernet/intel/ice/ice_repr.c
Original file line number Diff line number Diff line change
Expand Up @@ -382,19 +382,19 @@ ice_repr_add(struct ice_pf *pf, struct ice_vsi *src_vsi, const u8 *parent_mac)
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;
int err;

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)) {
Expand All @@ -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);
}

/**
Expand All @@ -432,16 +432,19 @@ static int ice_repr_add_vf(struct ice_vf *vf)
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;

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 */
Expand Down

0 comments on commit deb53f2

Please sign in to comment.