From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Wed, 03 Jul 2024 18:59:56 +0200 Received: from metis.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::104]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1sP3Km-001EZU-1z for lore@lore.pengutronix.de; Wed, 03 Jul 2024 18:59:56 +0200 Received: from bombadil.infradead.org ([2607:7c80:54:3::133]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1sP3Kk-0005QG-Jk for lore@pengutronix.de; Wed, 03 Jul 2024 18:59:56 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=EJRYhFhqY9/W8ghdfc5B4GFVbZJwnf2iD+XdOBpNzj8=; b=NBy0jViGrw6ULSX5LDjBVP+F6v nZCT0cFJWcW8mEegM5ACZW/gMS4gOsaxieF4h2JwXCr/bDEKjTKVZr75b5ASfTnKV5IEKpK1wTw/i 72mIZxFJYpmrgm8IsaVOXmdkd2pIjF0SIseAyjFcDzxML3ivEZP3e2YXsRhNfsY9CnUAkkr3u0yVb Otv7FlIgniFynpFAodi0xKIgGToLSbtvTpalQwDGZZfwp3HU0UlpvtVezJeL2Gca9B6yafvd6AgJN 7/tlmr/0SfuUm2HJNBJDlNva7inkaCIm8e1/VpMhSJqt6ilHkV5SZrIoKUyabPBSnv7jXEWrEk7Me M+8XwpXQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sP3K2-0000000Av6A-1LcW; Wed, 03 Jul 2024 16:59:10 +0000 Received: from metis.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::104]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sP3Jv-0000000Av24-003H for barebox@lists.infradead.org; Wed, 03 Jul 2024 16:59:06 +0000 Received: from dude02.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::28]) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1sP3Jr-0004uJ-BS; Wed, 03 Jul 2024 18:58:59 +0200 From: Marco Felsch Date: Wed, 03 Jul 2024 18:58:31 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20240703-v2024-05-0-topic-fit-overlay-v3-3-c1fd766fd31d@pengutronix.de> References: <20240703-v2024-05-0-topic-fit-overlay-v3-0-c1fd766fd31d@pengutronix.de> In-Reply-To: <20240703-v2024-05-0-topic-fit-overlay-v3-0-c1fd766fd31d@pengutronix.de> To: Sascha Hauer , BAREBOX Cc: Marco Felsch X-Mailer: b4 0.14.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240703_095903_186757_19B09650 X-CRM114-Status: GOOD ( 13.18 ) X-BeenThere: barebox@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "barebox" X-SA-Exim-Connect-IP: 2607:7c80:54:3::133 X-SA-Exim-Mail-From: barebox-bounces+lore=pengutronix.de@lists.infradead.org X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on metis.whiteo.stw.pengutronix.de X-Spam-Level: X-Spam-Status: No, score=-5.2 required=4.0 tests=AWL,BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_NONE autolearn=unavailable autolearn_force=no version=3.4.2 Subject: [PATCH v3 03/10] of: overlay: make the pattern match function more generic X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on metis.whiteo.stw.pengutronix.de) The current overlay mechanism can handle files only, so filepattern was obvious. With the next commit this will change, so overlays can also supplied via FIT images. To prepare the pattern filter to match FIT config-nodes make the filter and global variable handling the pattern more generic by dropping the "file" prefix. Keep the backward compatibility by still providing the filepattern filter and the global of.overlay.filepattern variable but notice the user that the usage of those are deprecated. No functional change. Signed-off-by: Marco Felsch --- drivers/of/overlay.c | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/drivers/of/overlay.c b/drivers/of/overlay.c index 73c7a91db9b5..f0588076ff10 100644 --- a/drivers/of/overlay.c +++ b/drivers/of/overlay.c @@ -394,7 +394,7 @@ int of_register_overlay(struct device_node *overlay) return of_register_fixup(of_overlay_fixup, overlay); } -static char *of_overlay_filepattern; +static char *of_overlay_pattern; static char *of_overlay_dir; static char *of_overlay_basedir; @@ -491,10 +491,10 @@ int of_overlay_register_filter(struct of_overlay_filter *filter) } /** - * of_overlay_filter_filename - A filter that matches on the filename of + * of_overlay_filter_pattern - A filter that matches on the filename or * an overlay * @f: The filter - * @filename: The filename of the overlay + * @pattern: The filename of the overlay * * This filter matches when the filename matches one of the patterns given * in global.of.overlay.filepattern. global.of.overlay.filepattern shall @@ -502,20 +502,20 @@ int of_overlay_register_filter(struct of_overlay_filter *filter) * * @return: True when the overlay shall be applied, false otherwise. */ -static bool of_overlay_filter_filename(struct of_overlay_filter *f, - const char *filename) +static bool of_overlay_filter_pattern(struct of_overlay_filter *f, + const char *pattern) { char *p, *path, *n; int ret; bool apply; - p = path = strdup(of_overlay_filepattern); + p = path = strdup(of_overlay_pattern); while ((n = strsep_unescaped(&p, " "))) { if (!*n) continue; - ret = fnmatch(n, filename, 0); + ret = fnmatch(n, pattern, 0); if (!ret) { apply = true; @@ -530,6 +530,18 @@ static bool of_overlay_filter_filename(struct of_overlay_filter *f, return apply; } +static struct of_overlay_filter of_overlay_pattern_filter = { + .name = "pattern", + .filter_filename = of_overlay_filter_pattern, +}; + +static bool of_overlay_filter_filename(struct of_overlay_filter *f, + const char *filename) +{ + pr_warn("'filepattern' filter is marked as deprecated, convert to 'pattern' filter\n"); + return of_overlay_filter_pattern(f, filename); +} + static struct of_overlay_filter of_overlay_filepattern_filter = { .name = "filepattern", .filter_filename = of_overlay_filter_filename, @@ -584,15 +596,18 @@ static struct of_overlay_filter of_overlay_compatible_filter = { static int of_overlay_init(void) { - of_overlay_filepattern = strdup("*"); - of_overlay_filter = strdup("filepattern compatible"); + of_overlay_pattern = strdup("*"); + of_overlay_filter = strdup("pattern compatible"); of_overlay_set_basedir("/"); globalvar_add_simple_string("of.overlay.compatible", &of_overlay_compatible); - globalvar_add_simple_string("of.overlay.filepattern", &of_overlay_filepattern); + globalvar_add_simple_string("of.overlay.pattern", &of_overlay_pattern); globalvar_add_simple_string("of.overlay.filter", &of_overlay_filter); globalvar_add_simple_string("of.overlay.dir", &of_overlay_dir); + globalvar_alias_deprecated("of.overlay.filepattern", "of.overlay.pattern"); + + of_overlay_register_filter(&of_overlay_pattern_filter); of_overlay_register_filter(&of_overlay_filepattern_filter); of_overlay_register_filter(&of_overlay_compatible_filter); @@ -603,6 +618,6 @@ static int of_overlay_init(void) device_initcall(of_overlay_init); BAREBOX_MAGICVAR(global.of.overlay.compatible, "space separated list of compatibles an overlay must match"); -BAREBOX_MAGICVAR(global.of.overlay.filepattern, "space separated list of filepatterns an overlay must match"); +BAREBOX_MAGICVAR(global.of.overlay.pattern, "space separated list of filepatterns an overlay must match"); BAREBOX_MAGICVAR(global.of.overlay.dir, "Directory to look for dt overlays"); BAREBOX_MAGICVAR(global.of.overlay.filter, "space separated list of filters"); -- 2.39.2