kfree(shost->shost_data);
 
-       ida_simple_remove(&host_index_ida, shost->host_no);
+       ida_free(&host_index_ida, shost->host_no);
 
        if (shost->shost_state != SHOST_CREATED)
                put_device(parent);
        init_waitqueue_head(&shost->host_wait);
        mutex_init(&shost->scan_mutex);
 
-       index = ida_simple_get(&host_index_ida, 0, 0, GFP_KERNEL);
+       index = ida_alloc(&host_index_ida, GFP_KERNEL);
        if (index < 0) {
                kfree(shost);
                return NULL;
 
        scsi_remove_target(&session->dev);
 
        if (session->ida_used)
-               ida_simple_remove(&iscsi_sess_ida, target_id);
+               ida_free(&iscsi_sess_ida, target_id);
 
 unbind_session_exit:
        iscsi_session_event(session, ISCSI_KEVENT_UNBIND_SESSION);
                return -ENOMEM;
 
        if (target_id == ISCSI_MAX_TARGET) {
-               id = ida_simple_get(&iscsi_sess_ida, 0, 0, GFP_KERNEL);
+               id = ida_alloc(&iscsi_sess_ida, GFP_KERNEL);
 
                if (id < 0) {
                        iscsi_cls_session_printk(KERN_ERR, session,
        device_del(&session->dev);
 release_ida:
        if (session->ida_used)
-               ida_simple_remove(&iscsi_sess_ida, session->target_id);
+               ida_free(&iscsi_sess_ida, session->target_id);
 destroy_wq:
        destroy_workqueue(session->workq);
        return err;