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

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
...@@ -118,7 +118,6 @@ static struct dentry *dfs_device_status; ...@@ -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) ...@@ -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 @@ static int mtip_block_initialize(struct driver_data *dd) ...@@ -3923,9 +3912,7 @@ static int mtip_block_initialize(struct driver_data *dd)
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) ...@@ -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) ...@@ -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;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment