return -ENOMEM;
 
        vmd->dev = dev;
-       vmd->instance = ida_simple_get(&vmd_instance_ida, 0, 0, GFP_KERNEL);
+       vmd->instance = ida_alloc(&vmd_instance_ida, GFP_KERNEL);
        if (vmd->instance < 0)
                return vmd->instance;
 
        return 0;
 
  out_release_instance:
-       ida_simple_remove(&vmd_instance_ida, vmd->instance);
+       ida_free(&vmd_instance_ida, vmd->instance);
        return err;
 }
 
        vmd_cleanup_srcu(vmd);
        vmd_detach_resources(vmd);
        vmd_remove_irq_domain(vmd);
-       ida_simple_remove(&vmd_instance_ida, vmd->instance);
+       ida_free(&vmd_instance_ida, vmd->instance);
 }
 
 static void vmd_shutdown(struct pci_dev *dev)