|
@@ -1091,15 +1091,14 @@ static int rtsx_pci_probe(struct pci_dev *pcidev,
|
|
|
}
|
|
|
handle->pcr = pcr;
|
|
|
|
|
|
- if (!idr_pre_get(&rtsx_pci_idr, GFP_KERNEL)) {
|
|
|
- ret = -ENOMEM;
|
|
|
- goto free_handle;
|
|
|
- }
|
|
|
-
|
|
|
+ idr_preload(GFP_KERNEL);
|
|
|
spin_lock(&rtsx_pci_lock);
|
|
|
- ret = idr_get_new(&rtsx_pci_idr, pcr, &pcr->id);
|
|
|
+ ret = idr_alloc(&rtsx_pci_idr, pcr, 0, 0, GFP_NOWAIT);
|
|
|
+ if (ret >= 0)
|
|
|
+ pcr->id = ret;
|
|
|
spin_unlock(&rtsx_pci_lock);
|
|
|
- if (ret)
|
|
|
+ idr_preload_end();
|
|
|
+ if (ret < 0)
|
|
|
goto free_handle;
|
|
|
|
|
|
pcr->pci = pcidev;
|