@@ -774,17 +774,7 @@ static int rsxx_pci_probe(struct pci_dev *dev,
card->dev = dev;
pci_set_drvdata(dev, card);
- do {
- if (!ida_pre_get(&rsxx_disk_ida, GFP_KERNEL)) {
- st = -ENOMEM;
- goto failed_ida_get;
- }
-
- spin_lock(&rsxx_ida_lock);
- st = ida_get_new(&rsxx_disk_ida, &card->disk_id);
- spin_unlock(&rsxx_ida_lock);
- } while (st == -EAGAIN);
-
+ st = ida_get_index(&rsxx_disk_ida, &rsxx_ida_lock, &card->disk_id);
if (st)
goto failed_ida_get;
@@ -987,9 +977,7 @@ failed_request_regions:
failed_dma_mask:
pci_disable_device(dev);
failed_enable:
- spin_lock(&rsxx_ida_lock);
- ida_remove(&rsxx_disk_ida, card->disk_id);
- spin_unlock(&rsxx_ida_lock);
+ ida_put_index(&rsxx_disk_ida, &rsxx_ida_lock, card->disk_id);
failed_ida_get:
kfree(card);
Signed-off-by: Lee Duncan <lduncan@suse.com> --- drivers/block/rsxx/core.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-)