[{"id":3683498,"web_url":"http://patchwork.ozlabs.org/comment/3683498/","msgid":"<CAFLszTjNBo_jgqv9wmceu=qeYNUrvXczM2Dft6DdMxDdJrhU-A@mail.gmail.com>","list_archive_url":null,"date":"2026-04-28T14:11:58","subject":"Re: [PATCH v3 07/10] cmd: ubi: export more APIs to public","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: export more APIs to public\n>\n> Export the following functions to public:\n>\n> - ubi_detach(): this is paired with ubi_part(). One may call this function\n>   to completely clean up the ubi subsystem after using ubi_part().\n>\n> - ubi_{create,find,remove}_vol: this is a set of functions for volume\n>   management.\n>\n> Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>\n>\n> cmd/ubi.c           | 10 +++++-----\n>  include/ubi_uboot.h |  5 +++++\n>  2 files changed, 10 insertions(+), 5 deletions(-)\n\n> diff --git a/include/ubi_uboot.h b/include/ubi_uboot.h\n> @@ -47,10 +47,15 @@\n>  int ubi_mtd_param_parse(const char *val, struct kernel_param *kp);\n>  int ubi_init(void);\n>  void ubi_exit(void);\n> +int ubi_detach(void);\n>  int ubi_part(const char *part_name, const char *vid_header_offset);\n>  int ubi_volume_write(const char *volume, const void *buf, loff_t offset,\n>                    size_t size);\n>  int ubi_volume_read(const char *volume, void *buf, loff_t offset, size_t size);\n> +int ubi_create_vol(const char *volume, int64_t size, bool dynamic, int vol_id,\n> +                bool skipcheck);\n> +struct ubi_volume *ubi_find_volume(const char *volume);\n> +int ubi_remove_vol(const char *volume);\n\nPlease squash patch 9 (the kernel-doc comments) into this one.\nExporting an API and documenting it belong in the same change -\notherwise reviewers cannot judge the function contract from this patch\nalone.\n\n> diff --git a/cmd/ubi.c b/cmd/ubi.c\n> @@ -270,7 +270,7 @@ static struct ubi_volume *ubi_require_volume(const char *volume)\n>       return vol;\n>  }\n>\n> -static int ubi_remove_vol(const char *volume)\n> +int ubi_remove_vol(const char *volume)\n>  {\n>       int err, reserved_pebs, i;\n>       struct ubi_volume *vol;\n\nHmm, now that this is public, the mixed return convention is a bit\nawkward: ubi_remove_vol() returns positive ENODEV/EROFS in some paths\nand negative values from ubi_change_vtbl_record()/ubi_eba_unmap_leb()\nin others. ubi_create_vol() has the same issue. Worth a follow-up so\nexternal callers get a consistent convention - ideally negative errno\n\nReviewed-by: Simon Glass <sjg@chromium.org>","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=ez7E7Qsk;\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=\"ez7E7Qsk\";\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 (phobos.denx.de\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 4g4j744QTxz1xvV\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 Apr 2026 00:12:16 +1000 (AEST)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 8817484150;\n\tTue, 28 Apr 2026 16:12:14 +0200 (CEST)","by phobos.denx.de (Postfix, from userid 109)\n id 5692B84605; Tue, 28 Apr 2026 16:12:13 +0200 (CEST)","from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com\n [IPv6:2a00:1450:4864:20::62e])\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 E0B20845D0\n for <u-boot@lists.denx.de>; Tue, 28 Apr 2026 16:12:10 +0200 (CEST)","by mail-ej1-x62e.google.com with SMTP id\n a640c23a62f3a-b9382e59c0eso827243066b.0\n for <u-boot@lists.denx.de>; Tue, 28 Apr 2026 07:12:10 -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=1777385530; cv=none;\n d=google.com; s=arc-20240605;\n b=HHqgtcokkI2cJCBhVCX/fue5hKsEDynWX4GIwauTgwpebBNmWFGJ8KUTYrxJrFdMDj\n 7uxznerPpteNJ5q2HEgLZzzt2E3xn1lhOPPunR5FRX7aXDqJsWWvkKGwos4Cs/RHYwPU\n qxHMCv43jAjIKpizBdTrMS0VYljsX2qThY4Nvk0ka3CJX3iIRenMpvnIjfH/6YGKRnLQ\n k3dC7AFC/tHCvZfDWLJfS0ZbgC0C9HiT7annwxI3QBsSdxt9WJboV4jLy8Bf0G3SONdn\n hwZisAkAGBk7fbcQnZ/TD1yVDHGwpXlCLz5/kvPA/g7CP2mLHu15/8aciJe6id2sSJke\n 8Zhw==","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=EMlIjRiAhL8CJjQbLTaI8EsOC+yfdJT0vUOqB98kwS8=;\n fh=fJAGB8LvxCJalDRE+ziaXIW21+gD5jSCb0B1QEwHsvE=;\n b=VrJ0T8bNp0+KINmiI0gRv+7YL8WS7owGXfL7dcutxFPl7o8ta1+/fTHwyxAQ939YA4\n vu1jxREMRplSiM969Eljknj6c/beXMdfpC40c+bx1sY7CWwHLf8pvqd7ljQnXjasvWYD\n Ao3UPDeArgWqTO4BvlbFL6NOv8iAtap8t3yyQBhqstzMp4VPOuubzQ1RY9gpW8dNhYn9\n RHeAwM/RqfRU1evgmYuVS5PbObexbkPbEr5L+2uypKy5Yqam/O8TxnnWRTBsPjS1uxds\n 1jhddmcw2Ytr2eyTtNiFTaJ1LtiOSgioyfeQbY/7r9ru2rHzjktgvM+5q2nHUeWFr39f\n seGA==; 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=1777385530; x=1777990330; 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=EMlIjRiAhL8CJjQbLTaI8EsOC+yfdJT0vUOqB98kwS8=;\n b=ez7E7QskY9IVPJJc4fVEvDnKsZCMw3hbM3lYLJSNDo3r9nTxjVNDVHFfB86EUcTCkr\n JFn8jAzf2hKptE7WzpZJDT3MJAXAgBcxE6nvGajtCNI7lgYc0m48lTc5FEzJfkaLJchL\n 7tPPcyOlP7InRUtc639QspZnY0jEE92ltcwXk=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777385530; x=1777990330;\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=EMlIjRiAhL8CJjQbLTaI8EsOC+yfdJT0vUOqB98kwS8=;\n b=S1HL2Wk254+CItp/qtmqkw+U6Ofcay3XviTqZh7ClL0wjYdLzqxgUaV5zb/3XR+vNu\n EwfFvDRSz7Ydq6+RmryjmydK+L6TWERPtCtUrVKgeVp0kCptOLdTrvsJ2QJO/B7SHOWZ\n 9NTXSRvvOlF7R1LjWe2BWZYtYso4ITzgTM1sG+n3C3b5EiSZ2Dn8eQymEXAyYLtwx0ld\n Rf/W12PAt1+x+QvBUMIeXLVDF4vvEgyyJS0pQd1H54t7ak1KrChEivEQzWt7sNZpZJOt\n HlOy73lNkCJ830mHJWsT36+zXUc7HdqhKYGnDO/EjF6eEeW7bVEVYZozC7rAaxOJfs17\n UCYQ==","X-Gm-Message-State":"AOJu0YwQK+cATiZz1u3wHlQI8U4oXPTnize1IAJ0dzr9Yyx1dT4PKiiD\n H8X7BHIIjRzUYMSrduQjRnvJ6/az166rmpCfB0tzjSip3qO6MwQjnDK08d0BCWpemiZeqKI3FxF\n 8F6skQNMRb04M6a7x8P7lA99OnVkhb84eyvyVM53EvtuOAPFp/7c=","X-Gm-Gg":"AeBDiesQBXUzfkeDIECK2PcxwLznTg60VuPJNz4K0JiGajcYTNEK3XWnqEZbvvZauZ9\n ITHOM/3ZvUJn3dWCO2f+96BaXeTwkPje/F7aHDHh3YxjofdNQ8ajTXIK79xJ7ktUAOOC6WUIitn\n eHcHbaN6XCZ0qXMhBGXCfUeZlniT4cR3M70IMLka3sX6C102VRelbD/HfWBWw7UkspTz3BDfXRN\n IzMgO2payZS4ttf9B2x4Qt6+3VEXd2GGRHOTaRHbY4mctc/UjTmOvbu+0D+Jamcx+yRNzfAe5oF\n guExx/ja9ZhL3o6K","X-Received":"by 2002:a17:907:7210:b0:ba9:bb46:3449 with SMTP id\n a640c23a62f3a-bb8018db5bcmr204915566b.8.1777385530239; Tue, 28 Apr 2026\n 07:12:10 -0700 (PDT)","MIME-Version":"1.0","References":"<cover.1777272283.git.weijie.gao@mediatek.com>\n <cb7f6ba95951ed3437b6f0cc85179cf4b78f2a97.1777272283.git.weijie.gao@mediatek.com>","In-Reply-To":"\n <cb7f6ba95951ed3437b6f0cc85179cf4b78f2a97.1777272283.git.weijie.gao@mediatek.com>","From":"Simon Glass <sjg@chromium.org>","Date":"Tue, 28 Apr 2026 08:11:58 -0600","X-Gm-Features":"AVHnY4Jyt2gEO5IQsDKf2eUYubwk8DqNyUKmO5pf-3JeWYZvfp5aiLox73Vie0U","Message-ID":"\n <CAFLszTjNBo_jgqv9wmceu=qeYNUrvXczM2Dft6DdMxDdJrhU-A@mail.gmail.com>","Subject":"Re: [PATCH v3 07/10] cmd: ubi: export more APIs to public","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"}}]