if (!assoc)
                return NULL;
 
-       idx = ida_simple_get(&tgtport->assoc_cnt, 0, 0, GFP_KERNEL);
+       idx = ida_alloc(&tgtport->assoc_cnt, GFP_KERNEL);
        if (idx < 0)
                goto out_free_assoc;
 
 out_put:
        nvmet_fc_tgtport_put(tgtport);
 out_ida:
-       ida_simple_remove(&tgtport->assoc_cnt, idx);
+       ida_free(&tgtport->assoc_cnt, idx);
 out_free_assoc:
        kfree(assoc);
        return NULL;
        /* if pending Rcv Disconnect Association LS, send rsp now */
        if (oldls)
                nvmet_fc_xmt_ls_rsp(tgtport, oldls);
-       ida_simple_remove(&tgtport->assoc_cnt, assoc->a_id);
+       ida_free(&tgtport->assoc_cnt, assoc->a_id);
        dev_info(tgtport->dev,
                "{%d:%d} Association freed\n",
                tgtport->fc_target_port.port_num, assoc->a_id);
                goto out_regtgt_failed;
        }
 
-       idx = ida_simple_get(&nvmet_fc_tgtport_cnt, 0, 0, GFP_KERNEL);
+       idx = ida_alloc(&nvmet_fc_tgtport_cnt, GFP_KERNEL);
        if (idx < 0) {
                ret = -ENOSPC;
                goto out_fail_kfree;
 out_free_newrec:
        put_device(dev);
 out_ida_put:
-       ida_simple_remove(&nvmet_fc_tgtport_cnt, idx);
+       ida_free(&nvmet_fc_tgtport_cnt, idx);
 out_fail_kfree:
        kfree(newrec);
 out_regtgt_failed:
        /* let the LLDD know we've finished tearing it down */
        tgtport->ops->targetport_delete(&tgtport->fc_target_port);
 
-       ida_simple_remove(&nvmet_fc_tgtport_cnt,
+       ida_free(&nvmet_fc_tgtport_cnt,
                        tgtport->fc_target_port.port_num);
 
        ida_destroy(&tgtport->assoc_cnt);