提交 803d9e04 编写于 作者: T Tejun Heo 提交者: Linus Torvalds

mmc: convert to idr_alloc()

Convert to the much saner new idr interface.
Signed-off-by: NTejun Heo <tj@kernel.org>
Cc: Chris Ball <cjb@laptop.org>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 57f2667c
...@@ -429,19 +429,20 @@ struct mmc_host *mmc_alloc_host(int extra, struct device *dev) ...@@ -429,19 +429,20 @@ struct mmc_host *mmc_alloc_host(int extra, struct device *dev)
int err; int err;
struct mmc_host *host; struct mmc_host *host;
if (!idr_pre_get(&mmc_host_idr, GFP_KERNEL))
return NULL;
host = kzalloc(sizeof(struct mmc_host) + extra, GFP_KERNEL); host = kzalloc(sizeof(struct mmc_host) + extra, GFP_KERNEL);
if (!host) if (!host)
return NULL; return NULL;
/* scanning will be enabled when we're ready */ /* scanning will be enabled when we're ready */
host->rescan_disable = 1; host->rescan_disable = 1;
idr_preload(GFP_KERNEL);
spin_lock(&mmc_host_lock); spin_lock(&mmc_host_lock);
err = idr_get_new(&mmc_host_idr, host, &host->index); err = idr_alloc(&mmc_host_idr, host, 0, 0, GFP_NOWAIT);
if (err >= 0)
host->index = err;
spin_unlock(&mmc_host_lock); spin_unlock(&mmc_host_lock);
if (err) idr_preload_end();
if (err < 0)
goto free; goto free;
dev_set_name(&host->class_dev, "mmc%d", host->index); dev_set_name(&host->class_dev, "mmc%d", host->index);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册