Instead of getting repr::id from xa_alloc() value, set it to the
src_vsi::num_vsi value. It is unique for each PR.

Reviewed-by: Przemek Kitszel <[email protected]>
Reviewed-by: Marcin Szycik <[email protected]>
Signed-off-by: Michal Swiatkowski <[email protected]>
---
 drivers/net/ethernet/intel/ice/ice_eswitch.c | 5 ++---
 drivers/net/ethernet/intel/ice/ice_repr.c    | 1 +
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/intel/ice/ice_eswitch.c 
b/drivers/net/ethernet/intel/ice/ice_eswitch.c
index 76fa114f22c9..5eba8dec9f94 100644
--- a/drivers/net/ethernet/intel/ice/ice_eswitch.c
+++ b/drivers/net/ethernet/intel/ice/ice_eswitch.c
@@ -319,7 +319,7 @@ ice_eswitch_mode_set(struct devlink *devlink, u16 mode,
 
                dev_info(ice_pf_to_dev(pf), "PF %d changed eswitch mode to 
switchdev",
                         pf->hw.pf_id);
-               xa_init_flags(&pf->eswitch.reprs, XA_FLAGS_ALLOC);
+               xa_init(&pf->eswitch.reprs);
                NL_SET_ERR_MSG_MOD(extack, "Changed eswitch mode to switchdev");
                break;
        }
@@ -426,8 +426,7 @@ ice_eswitch_attach(struct ice_pf *pf, struct ice_vf *vf)
        if (err)
                goto err_setup_repr;
 
-       err = xa_alloc(&pf->eswitch.reprs, &repr->id, repr,
-                      XA_LIMIT(1, INT_MAX), GFP_KERNEL);
+       err = xa_insert(&pf->eswitch.reprs, repr->id, repr, GFP_KERNEL);
        if (err)
                goto err_xa_alloc;
 
diff --git a/drivers/net/ethernet/intel/ice/ice_repr.c 
b/drivers/net/ethernet/intel/ice/ice_repr.c
index a5c24da31b88..b4fb74271811 100644
--- a/drivers/net/ethernet/intel/ice/ice_repr.c
+++ b/drivers/net/ethernet/intel/ice/ice_repr.c
@@ -345,6 +345,7 @@ ice_repr_add(struct ice_pf *pf, struct ice_vsi *src_vsi, 
const u8 *parent_mac)
        }
 
        repr->src_vsi = src_vsi;
+       repr->id = src_vsi->vsi_num;
        np = netdev_priv(repr->netdev);
        np->repr = repr;
 
-- 
2.42.0

Reply via email to