At present this code is inline. Move it into a function to allow it to
be used elsewhere.

Signed-off-by: Simon Glass <s...@chromium.org>
---

 drivers/block/blk-uclass.c | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk-uclass.c
index 8b6b28d890..7947ca6f22 100644
--- a/drivers/block/blk-uclass.c
+++ b/drivers/block/blk-uclass.c
@@ -473,6 +473,19 @@ int blk_find_max_devnum(enum if_type if_type)
        return max_devnum;
 }
 
+static int blk_next_free_devnum(enum if_type if_type)
+{
+       int ret;
+
+       ret = blk_find_max_devnum(if_type);
+       if (ret == -ENODEV)
+               return 0;
+       else if (ret < 0)
+               return ret;
+       else
+               return ret + 1;
+}
+
 int blk_create_device(struct udevice *parent, const char *drv_name,
                      const char *name, int if_type, int devnum, int blksz,
                      lbaint_t size, struct udevice **devp)
@@ -482,13 +495,10 @@ int blk_create_device(struct udevice *parent, const char 
*drv_name,
        int ret;
 
        if (devnum == -1) {
-               ret = blk_find_max_devnum(if_type);
-               if (ret == -ENODEV)
-                       devnum = 0;
-               else if (ret < 0)
+               ret = blk_next_free_devnum(if_type);
+               if (ret < 0)
                        return ret;
-               else
-                       devnum = ret + 1;
+               devnum = ret;
        }
        ret = device_bind_driver(parent, drv_name, name, &dev);
        if (ret)
-- 
2.12.2.816.g2cccc81164-goog

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to