mtd: convert to idr_alloc()
authorTejun Heo <tj@kernel.org>
Thu, 28 Feb 2013 01:04:33 +0000 (17:04 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 28 Feb 2013 03:10:18 +0000 (19:10 -0800)
Convert to the much saner new idr interface.

Signed-off-by: Tejun Heo <tj@kernel.org>
Tested-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Cc: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/mtd/mtdcore.c

index ec794a72975dd886205f2460e2eaba08089a8daf..61d5f56473e11cc32c923d12f0f30f26cee4c557 100644 (file)
@@ -349,13 +349,8 @@ int add_mtd_device(struct mtd_info *mtd)
        BUG_ON(mtd->writesize == 0);
        mutex_lock(&mtd_table_mutex);
 
-       do {
-               if (!idr_pre_get(&mtd_idr, GFP_KERNEL))
-                       goto fail_locked;
-               error = idr_get_new(&mtd_idr, mtd, &i);
-       } while (error == -EAGAIN);
-
-       if (error)
+       i = idr_alloc(&mtd_idr, mtd, 0, 0, GFP_KERNEL);
+       if (i < 0)
                goto fail_locked;
 
        mtd->index = i;