Simplify bbu_find_handler_by_device() by making use of devpath_to_name() as well as some basic recursion to avoid coding the same loop twice. Signed-off-by: Andrey Smirnov <andrew.smirnov@xxxxxxxxx> --- common/bbu.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/common/bbu.c b/common/bbu.c index fabd94966..7b65fe45c 100644 --- a/common/bbu.c +++ b/common/bbu.c @@ -120,22 +120,18 @@ struct bbu_handler *bbu_find_handler_by_name(const char *name) struct bbu_handler *bbu_find_handler_by_device(const char *devicepath) { struct bbu_handler *handler; + const char *devname = devpath_to_name(devicepath); if (!devicepath) return NULL; - list_for_each_entry(handler, &bbu_image_handlers, list) + list_for_each_entry(handler, &bbu_image_handlers, list) { if (!strcmp(handler->devicefile, devicepath)) return handler; + } - if (strncmp(devicepath, "/dev/", 5)) - return NULL; - - devicepath += 5; - - list_for_each_entry(handler, &bbu_image_handlers, list) - if (!strcmp(handler->devicefile, devicepath)) - return handler; + if (devname != devicepath) + return bbu_find_handler_by_device(devname); return NULL; } -- 2.17.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox