[{"id":3683496,"web_url":"http://patchwork.ozlabs.org/comment/3683496/","msgid":"<CAFLszTjjde593ZKoZcSTTkKndC2XBKXCFLJzcYTafdD+1tZT-g@mail.gmail.com>","list_archive_url":null,"date":"2026-04-28T14:10:01","subject":"Re: [PATCH v3 06/10] cmd: ubi: reorganize command messages","submitter":{"id":6170,"url":"http://patchwork.ozlabs.org/api/people/6170/","name":"Simon Glass","email":"sjg@chromium.org"},"content":"Hi Weijie,\n\nOn 2026-04-27T07:09:11, Weijie Gao <weijie.gao@mediatek.com> wrote:\n> cmd: ubi: reorganize command messages\n>\n> This patch moves normal subcommand messages into the main command function.\n> This will allow current and potential api functions being called with clean\n> output.\n>\n> A new function ubi_require_volume() is added for finding and printing error\n> message if volume not found. The original ubi_find_volume() will be silent\n> for being an api function.\n>\n> Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>\n>\n> cmd/ubi.c | 109 +++++++++++++++++++++++++++++++++++++++++++++-----------------\n>  1 file changed, 79 insertions(+), 30 deletions(-)\n\n> diff --git a/cmd/ubi.c b/cmd/ubi.c\n> @@ -806,31 +805,65 @@ static int do_ubi(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])\n>       if (strncmp(argv[1], 'remove', 6) == 0) {\n>               /* E.g., remove volume */\n> -             if (argc == 3)\n> -                     return ubi_remove_vol(argv[2]);\n> +             if (argc == 3) {\n> +                     int vol_id;\n> +\n> +                     vol = ubi_find_volume(argv[2]);\n> +                     if (!vol)\n> +                             return 0;\n> +\n> +                     vol_id = vol->vol_id;\n> +\n> +                     ret = ubi_remove_vol(argv[2]);\n\nThis seems wrong - previously 'ubi remove nonexistent' printed an\nerror via ubi_find_volume() and returned ENODEV; now it silently\nreturns 0. I think you should use ubi_require_volume() here.\n\n> diff --git a/cmd/ubi.c b/cmd/ubi.c\n> @@ -806,31 +805,65 @@ static int do_ubi(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])\n>               if (argc == 3) {\n> +                     if (!size) {\n> +                             vol = ubi_require_volume(argv[3]);\n> +                             if (!vol)\n> +                                     return 1;\n> +\n> +                             printf(\"No size specified -> Using max size (%lld)\\n\",\n> +                                    vol->used_bytes);\n> +                             size = vol->used_bytes;\n> +                     }\n> +\n> +                     ret = ubi_volume_read(argv[3], (void *)addr, 0, size);\n\nWhen size is 0 the volume is now looked up twice,. i.e. here and again\ninside ubi_volume_read() - can you drop the fallback in\nubi_volume_read() or move the 'No size specified' print back there\nguarded by a verbose flag.\n\n> diff --git a/cmd/ubi.c b/cmd/ubi.c\n> @@ -806,31 +805,65 @@ static int do_ubi(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])\n> -     if (IS_ENABLED(CONFIG_CMD_UBI_RENAME) && !strncmp(argv[1], 'rename', 6))\n> -             return ubi_rename_vol(argv[2], argv[3]);\n> +     if (IS_ENABLED(CONFIG_CMD_UBI_RENAME) && !strncmp(argv[1], 'rename', 6)) {\n> +             ret = ubi_rename_vol(argv[2], argv[3]);\n> +             if (!ret) {\n> +                     printf(\"UBI volume %s renamed to %s\\n\", argv[2],\n> +                            argv[3]);\n> +             }\n> +\n> +             return ret;\n> +     }\n\nWhile you are here, please add an 'argc == 4' check to fix a\npre-existing bug - i.e. argv[2]/argv[3] are dereferenced\nunconditionally.\n\n> diff --git a/cmd/ubi.c b/cmd/ubi.c\n> @@ -806,31 +805,65 @@ static int do_ubi(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])\n> +                     else if (ret == -EEXIST)\n> +                             printf(\"Volume %s already exists!\\n\", argv[2]);\n> +\n> +                     return ret;\n\nJust to check: ubi_create_volume() returns -EEXIST, but\nverify_mkvol_req() returns positive errnos, so name-too-long or\nbad-alignment failures get no friendly message here. What do you think\nabout handling the verify_mkvol_req() errors here too, or making that\nhelper silent like ubi_find_volume()?\n\nRegards,\nSimon","headers":{"Return-Path":"<u-boot-bounces@lists.denx.de>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256\n header.s=google header.b=h06WVX7+;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)","phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=chromium.org","phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de","phobos.denx.de;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=chromium.org header.i=@chromium.org\n header.b=\"h06WVX7+\";\n\tdkim-atps=neutral","phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=chromium.org","phobos.denx.de;\n spf=pass smtp.mailfrom=sjg@chromium.org"],"Received":["from phobos.denx.de (unknown\n [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g4j5433y7z1xvV\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 Apr 2026 00:10:32 +1000 (AEST)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id A1DC184150;\n\tTue, 28 Apr 2026 16:10:19 +0200 (CEST)","by phobos.denx.de (Postfix, from userid 109)\n id 368B7843B6; Tue, 28 Apr 2026 16:10:18 +0200 (CEST)","from mail-ej1-x636.google.com (mail-ej1-x636.google.com\n [IPv6:2a00:1450:4864:20::636])\n (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 3B70883FB5\n for <u-boot@lists.denx.de>; Tue, 28 Apr 2026 16:10:15 +0200 (CEST)","by mail-ej1-x636.google.com with SMTP id\n a640c23a62f3a-ba7fd666666so1064129666b.3\n for <u-boot@lists.denx.de>; Tue, 28 Apr 2026 07:10:15 -0700 (PDT)"],"X-Spam-Checker-Version":"SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de","X-Spam-Level":"","X-Spam-Status":"No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,\n DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,\n RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham\n autolearn_force=no version=3.4.2","ARC-Seal":"i=1; a=rsa-sha256; t=1777385415; cv=none;\n d=google.com; s=arc-20240605;\n b=ikkXsxFWSA5+Z1MKpDKzFlz5UkAlcCVbfasmtBj+tqAU7LKXMZbLgygr0L/pABFnkd\n jPX9+H4OkWWceqdC43+w8vC9TIyxXI3yhDLUcMIc/tIpbwt2dlinepVXtZp9TtLHpbEy\n MsWLk63Uvqr46arXqFHciJr9EWKHUVnsojg3w6dSsrCJMMhHJSfLZzo9hS2ltq6u7as9\n aCCoEzQc7UdoXqJQhXCckPhVDWKoYU0W6fhZR1ESMuRbGePZAYok8p78RDqS00ew1zmM\n FGY+jMEhYYnNxIl+d+dvUaSaq+Ft/I4C98cAQO+iwqUPs8rhb+mEfwO/wlVWv8WsSJCN\n jGqQ==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:dkim-signature;\n bh=6YMu3axVWkIX7+rV9F14G3P8TtHtqZcRDj0U6GbjgUA=;\n fh=fJAGB8LvxCJalDRE+ziaXIW21+gD5jSCb0B1QEwHsvE=;\n b=UbdPE52/Qxg5KC+Nbg3JQV/Hn/eO2mV5x1mw1JQ+F5sJGYlgrFud0Fde3DCtCFfbjV\n 9B7KQnkjpja2bBeI1RPvexYhpR5dUHx+BDGq6s2dIUpKFywVT/UL66CaLBGWeS9lGx/9\n LpdNNBv4kz/PBd9M6451kWEerwcQJviH1JFGNcOkjxGTl/6wD9Ozas6lHbOWBqq+n2qH\n o4BPc0o0q+SHYVayuUINBJwiXa8b794IlWDHUe1w709qHADQEDs4dJZU7I6/9Xx7s6Sa\n 9Gmu8BhSsjVgMooL8Jdo0IbvD3rq0gA5oeGPMq0OjOxBRmFd/bd2JyiGDJYxbSgQ5iab\n awhQ==; darn=lists.denx.de","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=chromium.org; s=google; t=1777385415; x=1777990215; darn=lists.denx.de;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:from:to:cc:subject:date:message-id:reply-to;\n bh=6YMu3axVWkIX7+rV9F14G3P8TtHtqZcRDj0U6GbjgUA=;\n b=h06WVX7+V/JfwQY3K5Nngn5t0amddjMLgWlyR8ogE3EGJaO6TnOCpOhHV/m7FNn5yv\n j9nrM+A5SfGjWjzU5xKIQ3luJxN+9GeUjkcBFDKjKclcgtxKHs04NXyfqjfUkPXECiya\n PTsZYVXoKIlxb/OQ1m02dj9qKqU/dfPZEHEgA=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777385415; x=1777990215;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=6YMu3axVWkIX7+rV9F14G3P8TtHtqZcRDj0U6GbjgUA=;\n b=iGQk90rL9vu8fFM7HxmfEmhoSjl/QyGAJDxBQfbVFZhGrenOJmSz733Asb8me58Ke8\n fcfPG0BsTLJM1MHYU89K0c61HfylDNJJSX212SP7JmkfGGTZO5G+yoT+budNzS9fe1L7\n POSjgK2/h7xye1QYVOki7daekE3/e4JDzu41Rl4+2kOIYvxb9gFq6zMPJxmb21wQVl9t\n XBdujpOyjRUuCW9AN1af4bk25k6zIToAL5ZqKdy3sb0jz3yxDhjeLoypLkvm9o3l48a7\n qWsyTrE2yhd9Fmi1OgPh+M3TvGApwdK3v08F3Dy3m5zadrBazorwXeLbKTQNLjAztcjc\n 3dtw==","X-Gm-Message-State":"AOJu0YzQLrXqnxxgDfHraX7R2B2WZtS3oTYV1F8Ew2dxSFTdqQlytFdy\n 4ZHGrY8PAa/iWv2PRyKB46RzxbB+a1h+oCGSwjNzcNLQSvuajdT8ON+W7WHOCcMeEr/5HGsN9Oe\n cTrNh+4OZb6USe72ObkCQbsywGRQoNTkcS4MBTj4g5zJedLKak3Y=","X-Gm-Gg":"AeBDies0HXDr1hcPwJOwpYqdmPIhu5eqhLg/FnNBoCfhJZu5Kw8PajXQJ3NfINhsAMa\n VqnHz+k5HVsTBIOWoxMznZqZhv/zk7EgwSAwUeUS60f7K1y4peOSd/1p7twaEBL1GbIfr4Ft7Ws\n PmqKETGnqculamj6KjLO/SUrIO11u0Jhs13AzvLT2ZbSVkbvrn5mVO1vkT7lEfTt/aGTAv/pCQn\n F2iW3IV6G2MM+Dj1w5ekr4rcmQDQ23xZei8J7r7LGLxHrpeVp4RcnyYWBQHWNx94bIHXKpwSjQG\n HTqu3YMkuPusA4H5","X-Received":"by 2002:a17:907:e112:b0:ba9:1431:8b7f with SMTP id\n a640c23a62f3a-bb8029bf618mr144487266b.18.1777385414630; Tue, 28 Apr 2026\n 07:10:14 -0700 (PDT)","MIME-Version":"1.0","References":"<cover.1777272283.git.weijie.gao@mediatek.com>\n <e9ca310e07d0e591339e0dbf3c1b893a1c43a03b.1777272283.git.weijie.gao@mediatek.com>","In-Reply-To":"\n <e9ca310e07d0e591339e0dbf3c1b893a1c43a03b.1777272283.git.weijie.gao@mediatek.com>","From":"Simon Glass <sjg@chromium.org>","Date":"Tue, 28 Apr 2026 08:10:01 -0600","X-Gm-Features":"AVHnY4KRI1oC_orG9qhBHXkV6XFdmEmphZBj2qkTC3yLHxy7YQikkcC9-ESMDB8","Message-ID":"\n <CAFLszTjjde593ZKoZcSTTkKndC2XBKXCFLJzcYTafdD+1tZT-g@mail.gmail.com>","Subject":"Re: [PATCH v3 06/10] cmd: ubi: reorganize command messages","To":"weijie.gao@mediatek.com","Cc":"u-boot@lists.denx.de","Content-Type":"text/plain; charset=\"UTF-8\"","X-BeenThere":"u-boot@lists.denx.de","X-Mailman-Version":"2.1.39","Precedence":"list","List-Id":"U-Boot discussion <u-boot.lists.denx.de>","List-Unsubscribe":"<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>","List-Archive":"<https://lists.denx.de/pipermail/u-boot/>","List-Post":"<mailto:u-boot@lists.denx.de>","List-Help":"<mailto:u-boot-request@lists.denx.de?subject=help>","List-Subscribe":"<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>","Errors-To":"u-boot-bounces@lists.denx.de","Sender":"\"U-Boot\" <u-boot-bounces@lists.denx.de>","X-Virus-Scanned":"clamav-milter 0.103.8 at phobos.denx.de","X-Virus-Status":"Clean"}}]