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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 40413C25B78 for ; Tue, 4 Jun 2024 13:41:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7E8B96B0092; Tue, 4 Jun 2024 09:41:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 797F56B0093; Tue, 4 Jun 2024 09:41:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5C3716B0095; Tue, 4 Jun 2024 09:41:35 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 34CA56B0092 for ; Tue, 4 Jun 2024 09:41:35 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id C662180863 for ; Tue, 4 Jun 2024 13:41:34 +0000 (UTC) X-FDA: 82193318508.22.DD58609 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf11.hostedemail.com (Postfix) with ESMTP id EBFF440019 for ; Tue, 4 Jun 2024 13:41:32 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=bXYkUdIM; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf11.hostedemail.com: domain of andi.shyti@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=andi.shyti@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1717508493; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=NLx9D3E/f7ZlDsKhaFbep7Z/zSniFAeZ0uaVtAKC8Rs=; b=djhQDqyW1Lf0V9esEgavrAZDpZusdW15+19npVIdWnHWFi+AyS+Y+l1sbM8CDXwm+anAyr D/RVynv3Rz3+bLqBYtYmZIitA2UlJ6cuFYneCbA2HGRrvnOS4VRM3Ug6OcQSA6KDbNRGFL 6GyGIj0D+PY812Es+u9tXOyT+1GnHCs= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=bXYkUdIM; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf11.hostedemail.com: domain of andi.shyti@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=andi.shyti@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717508493; a=rsa-sha256; cv=none; b=RLc5eNC8B8KCMLjzfItQefd1WJbAXOIkYl68TrvhEDdQNzp8S0bPavi4f63HjaQljKo2VZ ckzCzB4gzt+GVdGRxarzALe8d1wvDObzXMe7GkpbXHNPRQHTjToWBhLt6qkQCNfm1D1tFx m4a/lEVAQpfNulBYZUwNnEFjMtVMu9o= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id BCC45612BE; Tue, 4 Jun 2024 13:41:31 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6BE38C2BBFC; Tue, 4 Jun 2024 13:41:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1717508491; bh=FArcXwplL8wN1ALhCuGpUD+BoCuPOB8+aNe29ijJswU=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=bXYkUdIM5G5RAUoPD7MJYr//S1oqHl+LJ3fxfw7lfSFuBw8JhGTBW9PLufCUqHKjY OJVFk7K+rOrq9HuH76qkiJL0A/sTi2rTQodn+TKkQocB/tbQHZeZKu3m3G2lM5wcf0 VD97GRCGMBes8MaOHcg8KM5fvFeye/FAQg9SKZN6tpIn5+9U5FE+VZJf0uRZu8AxbF xrs4Rlqn5YOUS7D0btNT9APFrOK0n1Q8HZ/ji58Sj2kGEhPit3yyT7IaR0HjrbKKbe 82WAiCP1NrKaOO3384inkZ8fhbN5SYnrWSCyMgS7pEXOOMKSO77chS2wlgGdCmIr5c AAtt4MysOip3g== Date: Tue, 4 Jun 2024 14:41:26 +0100 From: Andi Shyti To: Andy Shevchenko Cc: "Rafael J. Wysocki" , Greg Kroah-Hartman , Corey Minyard , Allen Pais , Sebastian Reichel , Perry Yuan , Giovanni Cabiddu , Herbert Xu , Nuno Sa , Guenter Roeck , Randy Dunlap , Heiner Kallweit , Lee Jones , Samuel Holland , Elad Nachman , Arseniy Krasnov , Johannes Berg , Gregory Greenman , Benjamin Berg , Bjorn Helgaas , Robert Richter , Vinod Koul , Chunfeng Yun , Linus Walleij , Hans de Goede , Ilpo =?utf-8?B?SsOkcnZpbmVu?= , Nikita Kravets , Jiri Slaby , Srinivas Pandruvada , Stanley Chang , Heikki Krogerus , Abdel Alkuor , Kent Overstreet , Eric Biggers , Kees Cook , Ingo Molnar , "Steven Rostedt (Google)" , Daniel Bristot de Oliveira , Andrew Morton , Hugh Dickins , Abel Wu , John Johansen , Mimi Zohar , Stefan Berger , Roberto Sassu , Eric Snowberg , Takashi Iwai , Takashi Sakamoto , Jiapeng Chong , Mark Brown , Kuninori Morimoto , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, keyrings@vger.kernel.org, linux-crypto@vger.kernel.org, linux-acpi@vger.kernel.org, linux-ide@vger.kernel.org, openipmi-developer@lists.sourceforge.net, linux-clk@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-tegra@vger.kernel.org, linux-pm@vger.kernel.org, qat-linux@intel.com, dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org, nouveau@lists.freedesktop.org, linux-hwmon@vger.kernel.org, linux-i2c@vger.kernel.org, linux-leds@vger.kernel.org, linux-sunxi@lists.linux.dev, linux-omap@vger.kernel.org, linux-mmc@vger.kernel.org, linux-mtd@lists.infradead.org, netdev@vger.kernel.org, linux-wireless@vger.kernel.org, linux-pci@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-phy@lists.infradead.org, linux-gpio@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-staging@lists.linux.dev, linux-usb@vger.kernel.org, linux-fbdev@vger.kernel.org, linux-bcachefs@vger.kernel.org, linux-hardening@vger.kernel.org, cgroups@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-mm@kvack.org, apparmor@lists.ubuntu.com, linux-security-module@vger.kernel.org, linux-integrity@vger.kernel.org, alsa-devel@alsa-project.org, linux-sound@vger.kernel.org, Michael Ellerman , Nicholas Piggin , Christophe Leroy , "Naveen N. Rao" , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , David Howells , "David S. Miller" , "Rafael J. Wysocki" , Len Brown , Sergey Shtylyov , Damien Le Moal , Niklas Cassel , Daniel Scally , Sakari Ailus , Michael Turquette , Stephen Boyd , Florian Fainelli , Ray Jui , Scott Branden , Broadcom internal kernel review list , Heiko Stuebner , Peter De Schrijver , Prashant Gaikwad , Thierry Reding , Jonathan Hunter , Huang Rui , "Gautham R. Shenoy" , Mario Limonciello , Viresh Kumar , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Jani Nikula , Rodrigo Vivi , Joonas Lahtinen , Tvrtko Ursulin , Karol Herbst , Lyude Paul , Danilo Krummrich , Jean Delvare , Alexander Shishkin , Pavel Machek , Chen-Yu Tsai , Jernej Skrabec , Tony Lindgren , Adrian Hunter , Hu Ziji , Ulf Hansson , Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Potnuri Bharat Teja , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Miri Korenblit , Kalle Valo , Mahesh J Salgaonkar , Oliver O'Halloran , Kishon Vijay Abraham I , Matthias Brugger , AngeloGioacchino Del Regno , JC Kuo , Andrew Lunn , Gregory Clement , Sebastian Hesselbarth , Sebastian Reichel , Daniel Lezcano , Zhang Rui , Lukasz Luba , Thinh Nguyen , Helge Deller , Brian Foster , Zhihao Cheng , Tejun Heo , Zefan Li , Johannes Weiner , Peter Zijlstra , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Ben Segall , Mel Gorman , Daniel Bristot de Oliveira , Valentin Schneider , Masami Hiramatsu , Mathieu Desnoyers , Jason Baron , Jim Cromie , Paul Moore , James Morris , "Serge E. Hallyn" , Dmitry Kasatkin , Clemens Ladisch , Jaroslav Kysela , Takashi Iwai , Liam Girdwood , Linus Torvalds Subject: Re: [PATCH v1 1/1] treewide: Align match_string() with sysfs_match_string() Message-ID: <3ojs6btxgava4dcasys5tnrg5vsrqlshagcg7otvrdgfcwwje4@lcrd3r6gkfcs> References: <20240603211538.289765-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240603211538.289765-1-andriy.shevchenko@linux.intel.com> X-Rspamd-Queue-Id: EBFF440019 X-Stat-Signature: eyuqpocx1xnbk1xj5wo4z5zczyeob4wh X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1717508492-842314 X-HE-Meta: U2FsdGVkX19pezKiz/cE7IEW0ZfXaSN/7DYzF3BDG3ErnQEuFy/e10cYwpklmCSPJ/sGGVHgSOdHX8rPOkWhvp12sq3vC5hYWz9aaMtbYJtJH/BlCBdbzbiDD+Y+3C5s9HQRk8ACScrZPgKrvV8kKknrNCzLxGPHpyXCmSixEQRl23aDWAG+ksbWE8XmA/C5DEr9VVjUhA4vpmzDUyzbDaHSuLUbMP+kPRNICbBUAxu8OE2QTXN+bPTYkq8rt8FCI2PdBP4/zEXdqMZf7LgoRHb/Vm/L8uhewJ/vIl7IEmZBM4/NXqXHagT3qSJM14oR7YSofhQvy89LORaO8tuKgids+kxVIzz/kbuQeVgRmcZeQ6dyRfIrvnZOE+i81YgzdFH6661UDHkNE5Dkx3/f1obpBgtzyvQIm7loN4MZfXaUATtHVD1As5DQxeVk/4JkT267NFdAIw9kDLGXMqP+HiNxLJ1vnOtVXfDhwXHSrFoHP65uSDEghHPIHsRd4MKm41XX5XHPULUoH+M1cznjqUX9b0pB08I3iiwQDZfohAxIeCgmAq3WTO1KsdG5C2RztZ+n12kJsBtDjGTUSGomHWMA4WN5OjfssohSTR0aAf1041YK0FnIL41VRWkF9NaWowgPg7YscoXJI2+oaL3sPZIUZQYH/gxBIn4pgTy9VWxAWcjnD4LlKhjk7brVWgMq/9KpPtkGUTQTFDPxXtothwnv1UQGzt4yyJJEi1eO5LfJUl7MbC65OcSYcfiwqefqc3w9Z8g7tjksTpHAFpmYYI1KlinKDol6NGZDkWrcnWU33i2MIuwRwpoLsxk2nu7yLeYL0eLSNkkv0z1zNb0T9D7fDbJf2VmLzVrY+AqZdePfuCG5Ggxk2kjM3OkX94IeyfKw9bPNMt1L8frs3LCUbk/0HLfAGW38m1qZ9b49PrFbqlVyVfM+f1962SB1BGhy/6udpThdo5p8MjjiXHC FJ1pOJ3n xkmWjukupGmjVF5EATgEKWjHWtIBYVtAfaDcmfrNlIYqghxzJLcC+lOakdcz4PWir+VRSnq4Jmjk578TQBWLAGPjvVFVgK1VQiZ8mBGO/fvlbeTSXXwd7GiY7U6RxcppLV9c4M0bnw8CNwlwVBmWMnsACE8RIBgLg4WnNi+Y/hBt+IisxJ9kUfq7dbViiyEOha7jUdxAb2Cewtbsy0Keo4ljknB/kGTzKK0zlr1NZI8VeUev6JeOoTFL/rdxPGDNOdvlFZ/sHl5aq2ruwy/pkEvMmE2dzXKkRVtLJjYJ+L99LPuB3wds/DVzV7jHXYhfXibmd9EXObFZFOxc= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi Andy, On Sun, Jun 02, 2024 at 06:57:12PM +0300, Andy Shevchenko wrote: > Make two APIs look similar. Hence convert match_string() to be > a 2-argument macro. In order to avoid unneeded churn, convert > all users as well. There is no functional change intended. > > Signed-off-by: Andy Shevchenko nice patch, I checked some (maybe most) of your changes. There are a few unrelated changes which I don't mind, but there are two errors where the error value changes from ENODEV to EINVAL. Find the comments through the line. ... > diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c > index 1b7e82a0ad2e..b6f52f44625f 100644 > --- a/drivers/cpufreq/amd-pstate.c > +++ b/drivers/cpufreq/amd-pstate.c > @@ -1117,9 +1117,9 @@ static ssize_t store_energy_performance_preference( > if (ret != 1) > return -EINVAL; > > - ret = match_string(energy_perf_strings, -1, str_preference); > + ret = __match_string(energy_perf_strings, -1, str_preference); > if (ret < 0) > - return -EINVAL; > + return ret; a bit of unrelated changes here, but I guess no one will complain :-) > > mutex_lock(&amd_pstate_limits_lock); > ret = amd_pstate_set_energy_pref_index(cpudata, ret); ... > diff --git a/drivers/mmc/host/sdhci-xenon-phy.c b/drivers/mmc/host/sdhci-xenon-phy.c > index cc9d28b75eb9..1865e26ae736 100644 > --- a/drivers/mmc/host/sdhci-xenon-phy.c > +++ b/drivers/mmc/host/sdhci-xenon-phy.c > @@ -135,15 +135,14 @@ struct xenon_emmc_phy_regs { > u32 logic_timing_val; > }; > > -static const char * const phy_types[] = { > - "emmc 5.0 phy", > - "emmc 5.1 phy" > -}; > - > enum xenon_phy_type_enum { > EMMC_5_0_PHY, > EMMC_5_1_PHY, > - NR_PHY_TYPES > +}; > + > +static const char * const phy_types[] = { > + [EMMC_5_0_PHY] = "emmc 5.0 phy", > + [EMMC_5_1_PHY] = "emmc 5.1 phy", > }; Another unrelated cleanup, but I don't complain > enum soc_pad_ctrl_type { ... > - tablet_found = match_string(tablet_chassis_types, > - ARRAY_SIZE(tablet_chassis_types), > - chassis_type) >= 0; > - if (!tablet_found) > - return -ENODEV; > + ret = match_string(tablet_chassis_types, chassis_type); > + if (ret < 0) > + return ret; This is a logical change though, because we are changing from -ENODEV to -EINVAL. Even if it might look the right thing, but still, it's a logical change. > > ret = hp_wmi_perform_query(HPWMI_SYSTEM_DEVICE_MODE, HPWMI_READ, > system_device_mode, zero_if_sup(system_device_mode), > @@ -490,9 +487,7 @@ static bool is_omen_thermal_profile(void) > if (!board_name) > return false; > > - return match_string(omen_thermal_profile_boards, > - ARRAY_SIZE(omen_thermal_profile_boards), > - board_name) >= 0; > + return match_string(omen_thermal_profile_boards, board_name) >= 0; > } > > static int omen_get_thermal_policy_version(void) ... > diff --git a/drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c b/drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c > index e56db75a94fb..dbd176b0fb1f 100644 > --- a/drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c > +++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c > @@ -111,7 +111,7 @@ static ssize_t suffix##_show(struct device *dev,\ > match_strs = (const char **)fivr_strings;\ > mmio_regs = tgl_fivr_mmio_regs;\ > } \ > - ret = match_string(match_strs, -1, attr->attr.name);\ > + ret = __match_string(match_strs, -1, attr->attr.name);\ > if (ret < 0)\ > return ret;\ > reg_val = readl((void __iomem *) (proc_priv->mmio_base + mmio_regs[ret].offset));\ > @@ -145,7 +145,7 @@ static ssize_t suffix##_store(struct device *dev,\ > mmio_regs = tgl_fivr_mmio_regs;\ > } \ > \ > - ret = match_string(match_strs, -1, attr->attr.name);\ > + ret = __match_string(match_strs, -1, attr->attr.name);\ > if (ret < 0)\ > return ret;\ > if (mmio_regs[ret].read_only)\ > diff --git a/drivers/thermal/intel/int340x_thermal/processor_thermal_wt_req.c b/drivers/thermal/intel/int340x_thermal/processor_thermal_wt_req.c > index f298e7442662..57f456befb34 100644 > --- a/drivers/thermal/intel/int340x_thermal/processor_thermal_wt_req.c > +++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_wt_req.c > @@ -50,7 +50,7 @@ static ssize_t workload_type_store(struct device *dev, > if (ret != 1) > return -EINVAL; > > - ret = match_string(workload_types, -1, str_preference); > + ret = __match_string(workload_types, -1, str_preference); We could even thing of a "match_string_terminated" (or a better name), but maybe it's too much? > if (ret < 0) > return ret; > ... > - c->auth_hash_algo = match_string(hash_algo_name, HASH_ALGO__LAST, > - c->auth_hash_name); > - if ((int)c->auth_hash_algo < 0) { > + err = __match_string(hash_algo_name, HASH_ALGO__LAST, c->auth_hash_name); > + if (err < 0) { > ubifs_err(c, "Unknown hash algo %s specified", > c->auth_hash_name); > - return -EINVAL; > + return err; This is correct! > } > + c->auth_hash_algo = err; > > snprintf(hmac_name, CRYPTO_MAX_ALG_NAME, "hmac(%s)", > c->auth_hash_name); ... > +int __match_string(const char * const *array, size_t n, const char *string); > + > +/** > + * match_string - matches given string in an array > + * @_a: array of strings > + * @_s: string to match with > + * > + * Helper for __match_string(). Calculates the size of @a automatically. /@a/@_a/ > + */ > +#define match_string(_a, _s) __match_string(_a, ARRAY_SIZE(_a), _s) > + ... > diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c > index 6239777090c4..e3fc94b4c7e5 100644 > --- a/security/apparmor/lsm.c > +++ b/security/apparmor/lsm.c > @@ -1820,9 +1820,9 @@ static int param_set_audit(const char *val, const struct kernel_param *kp) > if (apparmor_initialized && !aa_current_policy_admin_capable(NULL)) > return -EPERM; > > - i = match_string(audit_mode_names, AUDIT_MAX_INDEX, val); > + i = __match_string(audit_mode_names, AUDIT_MAX_INDEX, val); pity here... this could have been a match_string, but the MAX_INDEX is hardcoded outside the enum. > if (i < 0) > - return -EINVAL; > + return i; > > aa_g_audit = i; > return 0; ... > diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c > index 16dad4a45443..7064f4cae549 100644 > --- a/sound/soc/soc-dapm.c > +++ b/sound/soc/soc-dapm.c > @@ -769,14 +769,13 @@ static int dapm_connect_mux(struct snd_soc_dapm_context *dapm, > item = 0; > } > > - i = match_string(e->texts, e->items, control_name); > + i = __match_string(e->texts, e->items, control_name); > if (i < 0) > - return -ENODEV; > + return i; Also this return value is wrong. Andi > > path->name = e->texts[i]; > path->connect = (i == item); > return 0; > - > } > > /* set up initial codec paths */ > -- > 2.43.0.rc1.1336.g36b5255a03ac >