summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Swiatkowski <michal.swiatkowski@linux.intel.com>2022-12-21 12:38:14 +0100
committerTony Nguyen <anthony.l.nguyen@intel.com>2023-02-03 09:54:18 -0800
commit2be29286ed9f6b035e1f87514953aa1c75cb045b (patch)
treeb1ab7c5f371886a9d63cc8d97700d1f6d1c1a2e1
parent2b8db6afbc95258175da69f31c9bfbea539aaa74 (diff)
ice: alloc id for RDMA using xa_array
Use xa_array instead of deprecated ida to alloc id for RDMA aux driver. Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
-rw-r--r--drivers/net/ethernet/intel/ice/ice_idc.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/net/ethernet/intel/ice/ice_idc.c b/drivers/net/ethernet/intel/ice/ice_idc.c
index 579d2a433ea1..e6bc2285071e 100644
--- a/drivers/net/ethernet/intel/ice/ice_idc.c
+++ b/drivers/net/ethernet/intel/ice/ice_idc.c
@@ -6,7 +6,7 @@
#include "ice_lib.h"
#include "ice_dcb_lib.h"
-static DEFINE_IDA(ice_aux_ida);
+static DEFINE_XARRAY_ALLOC1(ice_aux_id);
/**
* ice_get_auxiliary_drv - retrieve iidc_auxiliary_drv struct
@@ -349,8 +349,9 @@ int ice_init_rdma(struct ice_pf *pf)
return 0;
}
- pf->aux_idx = ida_alloc(&ice_aux_ida, GFP_KERNEL);
- if (pf->aux_idx < 0) {
+ ret = xa_alloc(&ice_aux_id, &pf->aux_idx, NULL, XA_LIMIT(1, INT_MAX),
+ GFP_KERNEL);
+ if (ret) {
dev_err(dev, "Failed to allocate device ID for AUX driver\n");
return -ENOMEM;
}
@@ -371,7 +372,7 @@ err_plug_aux_dev:
ice_free_rdma_qvector(pf);
err_reserve_rdma_qvector:
pf->adev = NULL;
- ida_free(&ice_aux_ida, pf->aux_idx);
+ xa_erase(&ice_aux_id, pf->aux_idx);
return ret;
}
@@ -386,5 +387,5 @@ void ice_deinit_rdma(struct ice_pf *pf)
ice_unplug_aux_dev(pf);
ice_free_rdma_qvector(pf);
- ida_free(&ice_aux_ida, pf->aux_idx);
+ xa_erase(&ice_aux_id, pf->aux_idx);
}