From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 58562C433F5 for ; Tue, 9 Nov 2021 08:11:13 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D1D91611BD for ; Tue, 9 Nov 2021 08:11:12 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org D1D91611BD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 65CF183939; Tue, 9 Nov 2021 09:11:10 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="K/4clZ2x"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 5718683928; Tue, 9 Nov 2021 09:11:08 +0100 (CET) Received: from mail-oi1-x22a.google.com (mail-oi1-x22a.google.com [IPv6:2607:f8b0:4864:20::22a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id C5B5283936 for ; Tue, 9 Nov 2021 09:11:01 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=rfried.dev@gmail.com Received: by mail-oi1-x22a.google.com with SMTP id bf8so14396633oib.6 for ; Tue, 09 Nov 2021 00:11:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=0AkeBiYvIWxJ8hcNDfeFZb65QgSFcfq/OIeJYMKdel0=; b=K/4clZ2x5E5kB5cyD1GUmmPhuFC9R1wt+2cpOqIRakHbklCk16cwT3qktCJuw/Upwr 5JiNz1aLUyvXEP0SqZn4aXqkDuwrLqX0rNPtGgcftkwkX5k/cGUFrMHBgqIUtp4pGhBM PH0BW4xvL0xjBdb5k5vATvGFvTvE02P/jXrr7aiCAb4Qyuz/gL4LpnEbqDA2gPT7PFcE i5L+tGXYA7jUu6TKwCGsVh30iFJIEf3l6w5EC/VH1n8lqbs94F1Y8sqAxQvddjcmiHIR RL5wM23Y55tHZidUk79yn+BdvBSL5jdpFohr+G9shzHdopeFKZ9US7pfIS3uoTHKhsja oe5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=0AkeBiYvIWxJ8hcNDfeFZb65QgSFcfq/OIeJYMKdel0=; b=t1Kp1opUyPIq/aUoMCAF9ie+0q7Up3mb3m91QLQd2+/KEdNYQEg1Rs8sC5VQEDH78X L6PkYw4s1SCytk87/L9lA19NWGJoDLAI3HPhhyv25+dd2qN0oZe3kj5IHlU9Hen1BXOk Rg8yOUN05fPnd56mscgQq3d5pjx/4leSnS+6PP17KOxeR2EeEVryLSgoS6zgSioFtsZ/ 72YSP3KuFOVR2SJbA6mqSKLrb2YAe2p30DBxVSbtnrDkl5k/R9PpQAYrJ4DT93oAq5i8 7pWnEN5tTjtlbs7OsoVYBY8dTdXOLL/2F5fduJy95Ff9uuV7xw/yQOcoBcfzr5ILFlvO HLyg== X-Gm-Message-State: AOAM530UhgjdCW9juHvq8sX6GTR0T3nqV51wHf5sUQaiJ6rgnkZtZhTi 39Eg3ZIS92jHCO/ed1OV4WcJCfDk0ajkavirB8g= X-Google-Smtp-Source: ABdhPJyR2ZzSyU6DYD3pfkcUafq+y0AuGC7Jb5ZVKAZ2NOK51T9rBoArM5ak6xPEGI7jZ3aPFxRRRZiPsJl+Dh/CJRc= X-Received: by 2002:a05:6808:bd6:: with SMTP id o22mr3919295oik.151.1636445460545; Tue, 09 Nov 2021 00:11:00 -0800 (PST) MIME-Version: 1.0 References: <20211014184811.482560-1-sjg@chromium.org> <20211014184811.482560-7-sjg@chromium.org> In-Reply-To: <20211014184811.482560-7-sjg@chromium.org> From: Ramon Fried Date: Tue, 9 Nov 2021 10:10:49 +0200 Message-ID: Subject: Re: [PATCH v3 06/18] pxe: Tidy up the is_pxe global To: Simon Glass Cc: U-Boot Mailing List , Patrice Chotard , Artem Lapkin , Tom Rini , Joe Hershberger , Heinrich Schuchardt , Peter Hoyes Content-Type: text/plain; charset="UTF-8" X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean On Thu, Oct 14, 2021 at 9:49 PM Simon Glass wrote: > > Move this into the context to avoid a global variable. Also rename it > since the current name does not explain what it actually affects. > > Signed-off-by: Simon Glass > --- > > (no changes since v1) > > cmd/pxe.c | 6 ++---- > cmd/pxe_utils.c | 13 +++++++------ > cmd/pxe_utils.h | 8 +++++--- > cmd/sysboot.c | 4 +--- > 4 files changed, 15 insertions(+), 16 deletions(-) > > diff --git a/cmd/pxe.c b/cmd/pxe.c > index d79b9b733d7..17fe364bed9 100644 > --- a/cmd/pxe.c > +++ b/cmd/pxe.c > @@ -121,7 +121,7 @@ do_pxe_get(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) > struct pxe_context ctx; > int err, i = 0; > > - pxe_setup_ctx(&ctx, cmdtp, do_get_tftp, NULL); > + pxe_setup_ctx(&ctx, cmdtp, do_get_tftp, NULL, false); > > if (argc != 1) > return CMD_RET_USAGE; > @@ -175,7 +175,7 @@ do_pxe_boot(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) > char *pxefile_addr_str; > struct pxe_context ctx; > > - pxe_setup_ctx(&ctx, cmdtp, do_get_tftp, NULL); > + pxe_setup_ctx(&ctx, cmdtp, do_get_tftp, NULL, false); > > if (argc == 1) { > pxefile_addr_str = from_env("pxefile_addr_r"); > @@ -235,8 +235,6 @@ static int do_pxe(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) > if (argc < 2) > return CMD_RET_USAGE; > > - is_pxe = true; > - > /* drop initial "pxe" arg */ > argc--; > argv++; > diff --git a/cmd/pxe_utils.c b/cmd/pxe_utils.c > index 5ad6d3e3d44..7d15c75dd87 100644 > --- a/cmd/pxe_utils.c > +++ b/cmd/pxe_utils.c > @@ -30,8 +30,6 @@ > > #define MAX_TFTP_PATH_LEN 512 > > -bool is_pxe; > - > int format_mac_pxe(char *outbuf, size_t outbuf_len) > { > uchar ethaddr[6]; > @@ -58,13 +56,13 @@ int format_mac_pxe(char *outbuf, size_t outbuf_len) > * be interpreted as "don't prepend anything to paths". > */ > static int get_bootfile_path(const char *file_path, char *bootfile_path, > - size_t bootfile_path_size) > + size_t bootfile_path_size, bool allow_abs_path) > { > char *bootfile, *last_slash; > size_t path_len = 0; > > /* Only syslinux allows absolute paths */ > - if (file_path[0] == '/' && !is_pxe) > + if (file_path[0] == '/' && allow_abs_path) > goto ret; > > bootfile = from_env("bootfile"); > @@ -110,7 +108,8 @@ static int get_relfile(struct pxe_context *ctx, const char *file_path, > char addr_buf[18]; > int err; > > - err = get_bootfile_path(file_path, relfile, sizeof(relfile)); > + err = get_bootfile_path(file_path, relfile, sizeof(relfile), > + ctx->allow_abs_path); > > if (err < 0) > return err; > @@ -1432,9 +1431,11 @@ void handle_pxe_menu(struct pxe_context *ctx, struct pxe_menu *cfg) > } > > void pxe_setup_ctx(struct pxe_context *ctx, struct cmd_tbl *cmdtp, > - pxe_getfile_func getfile, void *userdata) > + pxe_getfile_func getfile, void *userdata, > + bool allow_abs_path) > { > ctx->cmdtp = cmdtp; > ctx->getfile = getfile; > ctx->userdata = userdata; > + ctx->allow_abs_path = allow_abs_path; > } > diff --git a/cmd/pxe_utils.h b/cmd/pxe_utils.h > index 921455f694e..6681442ea55 100644 > --- a/cmd/pxe_utils.h > +++ b/cmd/pxe_utils.h > @@ -75,8 +75,6 @@ struct pxe_menu { > struct list_head labels; > }; > > -extern bool is_pxe; > - > struct pxe_context; > typedef int (*pxe_getfile_func)(struct pxe_context *ctx, const char *file_path, > char *file_addr); > @@ -87,6 +85,7 @@ typedef int (*pxe_getfile_func)(struct pxe_context *ctx, const char *file_path, > * @cmdtp: Pointer to command table to use when calling other commands > * @getfile: Function called by PXE to read a file > * @userdata: Data the caller requires for @getfile > + * @allow_abs_path: true to allow absolute paths > */ > struct pxe_context { > struct cmd_tbl *cmdtp; > @@ -102,6 +101,7 @@ struct pxe_context { > pxe_getfile_func getfile; > > void *userdata; > + bool allow_abs_path; > }; > > /** > @@ -196,8 +196,10 @@ int format_mac_pxe(char *outbuf, size_t outbuf_len); > * @cmdtp: Command table entry which started this action > * @getfile: Function to call to read a file > * @userdata: Data the caller requires for @getfile - stored in ctx->userdata > + * @allow_abs_path: true to allow absolute paths > */ > void pxe_setup_ctx(struct pxe_context *ctx, struct cmd_tbl *cmdtp, > - pxe_getfile_func getfile, void *userdata); > + pxe_getfile_func getfile, void *userdata, > + bool allow_abs_path); > > #endif /* __PXE_UTILS_H */ > diff --git a/cmd/sysboot.c b/cmd/sysboot.c > index 5615e81e9ca..85fa5d8aa01 100644 > --- a/cmd/sysboot.c > +++ b/cmd/sysboot.c > @@ -65,8 +65,6 @@ static int do_sysboot(struct cmd_tbl *cmdtp, int flag, int argc, > char *filename; > int prompt = 0; > > - is_pxe = false; > - > if (argc > 1 && strstr(argv[1], "-p")) { > prompt = 1; > argc--; > @@ -91,7 +89,7 @@ static int do_sysboot(struct cmd_tbl *cmdtp, int flag, int argc, > env_set("bootfile", filename); > } > > - pxe_setup_ctx(&ctx, cmdtp, NULL, NULL); > + pxe_setup_ctx(&ctx, cmdtp, NULL, NULL, true); > if (strstr(argv[3], "ext2")) { > ctx.getfile = do_get_ext2; > } else if (strstr(argv[3], "fat")) { > -- > 2.33.0.1079.g6e70778dc9-goog > Reviewed-by: Ramon Fried