Commit 3aed4bc1 authored by Matthew Wilcox's avatar Matthew Wilcox
Browse files

mtip32xx: Convert to new IDA API



Removes a use of ida_pre_get() and a personalised spinlock.

Signed-off-by: default avatarMatthew Wilcox <willy@infradead.org>
Reviewed-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
parent 5ade60dd
Loading
Loading
Loading
Loading
+6 −23
Original line number Original line Diff line number Diff line
@@ -118,7 +118,6 @@ static struct dentry *dfs_device_status;


static u32 cpu_use[NR_CPUS];
static u32 cpu_use[NR_CPUS];


static DEFINE_SPINLOCK(rssd_index_lock);
static DEFINE_IDA(rssd_index_ida);
static DEFINE_IDA(rssd_index_ida);


static int mtip_block_initialize(struct driver_data *dd);
static int mtip_block_initialize(struct driver_data *dd);
@@ -3768,20 +3767,10 @@ static int mtip_block_initialize(struct driver_data *dd)
		goto alloc_disk_error;
		goto alloc_disk_error;
	}
	}


	/* Generate the disk name, implemented same as in sd.c */
	rv = ida_alloc(&rssd_index_ida, GFP_KERNEL);
	do {
	if (rv < 0)
		if (!ida_pre_get(&rssd_index_ida, GFP_KERNEL)) {
			rv = -ENOMEM;
			goto ida_get_error;
		}

		spin_lock(&rssd_index_lock);
		rv = ida_get_new(&rssd_index_ida, &index);
		spin_unlock(&rssd_index_lock);
	} while (rv == -EAGAIN);

	if (rv)
		goto ida_get_error;
		goto ida_get_error;
	index = rv;


	rv = rssd_disk_name_format("rssd",
	rv = rssd_disk_name_format("rssd",
				index,
				index,
@@ -3923,9 +3912,7 @@ block_queue_alloc_init_error:
block_queue_alloc_tag_error:
block_queue_alloc_tag_error:
	mtip_hw_debugfs_exit(dd);
	mtip_hw_debugfs_exit(dd);
disk_index_error:
disk_index_error:
	spin_lock(&rssd_index_lock);
	ida_free(&rssd_index_ida, index);
	ida_remove(&rssd_index_ida, index);
	spin_unlock(&rssd_index_lock);


ida_get_error:
ida_get_error:
	put_disk(dd->disk);
	put_disk(dd->disk);
@@ -4013,9 +4000,7 @@ static int mtip_block_remove(struct driver_data *dd)
	}
	}
	dd->disk  = NULL;
	dd->disk  = NULL;


	spin_lock(&rssd_index_lock);
	ida_free(&rssd_index_ida, dd->index);
	ida_remove(&rssd_index_ida, dd->index);
	spin_unlock(&rssd_index_lock);


	/* De-initialize the protocol layer. */
	/* De-initialize the protocol layer. */
	mtip_hw_exit(dd);
	mtip_hw_exit(dd);
@@ -4055,9 +4040,7 @@ static int mtip_block_shutdown(struct driver_data *dd)
		dd->queue = NULL;
		dd->queue = NULL;
	}
	}


	spin_lock(&rssd_index_lock);
	ida_free(&rssd_index_ida, dd->index);
	ida_remove(&rssd_index_ida, dd->index);
	spin_unlock(&rssd_index_lock);
	return 0;
	return 0;
}
}