]> Pileus Git - ~andy/linux/blobdiff - drivers/scsi/bfa/bfad_im.c
Merge remote-tracking branch 'regulator/fix/doc' into tmp
[~andy/linux] / drivers / scsi / bfa / bfad_im.c
index 8f92732655c785a6adafc813c67cf7e02d843eb5..5864f987f2062aa3b6e7d53b48bfe6fdcd427c1d 100644 (file)
@@ -523,20 +523,13 @@ bfad_im_scsi_host_alloc(struct bfad_s *bfad, struct bfad_im_port_s *im_port,
        int error = 1;
 
        mutex_lock(&bfad_mutex);
-       if (!idr_pre_get(&bfad_im_port_index, GFP_KERNEL)) {
+       error = idr_alloc(&bfad_im_port_index, im_port, 0, 0, GFP_KERNEL);
+       if (error < 0) {
                mutex_unlock(&bfad_mutex);
-               printk(KERN_WARNING "idr_pre_get failure\n");
+               printk(KERN_WARNING "idr_alloc failure\n");
                goto out;
        }
-
-       error = idr_get_new(&bfad_im_port_index, im_port,
-                                        &im_port->idr_id);
-       if (error) {
-               mutex_unlock(&bfad_mutex);
-               printk(KERN_WARNING "idr_get_new failure\n");
-               goto out;
-       }
-
+       im_port->idr_id = error;
        mutex_unlock(&bfad_mutex);
 
        im_port->shost = bfad_scsi_host_alloc(im_port, bfad);