public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
To: Mario Limonciello <mario.limonciello@amd.com>
Cc: "Hans de Goede" <hdegoede@redhat.com>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	"Len Brown" <lenb@kernel.org>,
	"Maximilian Luz" <luzmaximilian@gmail.com>,
	"Lee Chun-Yi" <jlee@suse.com>,
	"Shyam Sundar S K" <Shyam-sundar.S-k@amd.com>,
	"Corentin Chary" <corentin.chary@gmail.com>,
	"Luke D . Jones" <luke@ljones.dev>,
	"Ike Panhc" <ike.pan@canonical.com>,
	"Henrique de Moraes Holschuh" <hmh@hmh.eng.br>,
	"Alexis Belmonte" <alexbelm48@gmail.com>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Ai Chao" <aichao@kylinos.cn>, "Gergo Koteles" <soyer@irl.hu>,
	"open list" <linux-kernel@vger.kernel.org>,
	"open list:ACPI" <linux-acpi@vger.kernel.org>,
	"open list:MICROSOFT SURFACE PLATFORM PROFILE DRIVER"
	<platform-driver-x86@vger.kernel.org>,
	"open list:THINKPAD ACPI EXTRAS DRIVER"
	<ibm-acpi-devel@lists.sourceforge.net>,
	"Mark Pearson" <mpearson-lenovo@squebb.ca>,
	"Matthew Schwartz" <matthew.schwartz@linux.dev>
Subject: Re: [PATCH v3 10/22] ACPI: platform_profile: Use `scoped_cond_guard` for platform_profile_show()
Date: Thu, 31 Oct 2024 12:15:38 +0200 (EET)	[thread overview]
Message-ID: <64f0b33b-3345-d9a6-d174-2a823adee216@linux.intel.com> (raw)
In-Reply-To: <20241031040952.109057-11-mario.limonciello@amd.com>

On Wed, 30 Oct 2024, Mario Limonciello wrote:

> Migrate away from using an interruptible mutex to scoped_cond_guard.
> Also move the sysfs string match out of the mutex as it's not needed.
> 
> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>

I'd have expected all the mutex_lock_interruptible() -> 
scoped_cond_guard() changes in the same patch. Although this also moves 
the sysfs stuff out which in this smaller form is kind of okay but if it's 
part of larger patch merging all scoped guard conversions, it should be 
in a different change.

-- 
 i.

> ---
>  drivers/acpi/platform_profile.c | 36 ++++++++++++---------------------
>  1 file changed, 13 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/acpi/platform_profile.c b/drivers/acpi/platform_profile.c
> index b48dd34301f13..63a5f5ac33898 100644
> --- a/drivers/acpi/platform_profile.c
> +++ b/drivers/acpi/platform_profile.c
> @@ -75,35 +75,25 @@ static ssize_t platform_profile_store(struct device *dev,
>  {
>  	int err, i;
>  
> -	err = mutex_lock_interruptible(&profile_lock);
> -	if (err)
> -		return err;
> -
> -	if (!cur_profile) {
> -		mutex_unlock(&profile_lock);
> -		return -ENODEV;
> -	}
> -
>  	/* Scan for a matching profile */
>  	i = sysfs_match_string(profile_names, buf);
> -	if (i < 0) {
> -		mutex_unlock(&profile_lock);
> +	if (i < 0)
>  		return -EINVAL;
> -	}
>  
> -	/* Check that platform supports this profile choice */
> -	if (!test_bit(i, cur_profile->choices)) {
> -		mutex_unlock(&profile_lock);
> -		return -EOPNOTSUPP;
> -	}
> +	scoped_cond_guard(mutex_intr, return -ERESTARTSYS, &profile_lock) {
> +		if (!cur_profile)
> +			return -ENODEV;
>  
> -	err = cur_profile->profile_set(cur_profile, i);
> -	if (!err)
> -		sysfs_notify(acpi_kobj, NULL, "platform_profile");
> +		/* Check that platform supports this profile choice */
> +		if (!test_bit(i, cur_profile->choices))
> +			return -EOPNOTSUPP;
>  
> -	mutex_unlock(&profile_lock);
> -	if (err)
> -		return err;
> +		err = cur_profile->profile_set(cur_profile, i);
> +		if (err)
> +			return err;
> +	}
> +
> +	sysfs_notify(acpi_kobj, NULL, "platform_profile");
>  	return count;
>  }
>  
> 

  reply	other threads:[~2024-10-31 10:15 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-31  4:09 [PATCH v3 00/22] Add support for binding ACPI platform profile to multiple drivers Mario Limonciello
2024-10-31  4:09 ` [PATCH v3 01/22] ACPI: platform-profile: Add a name member to handlers Mario Limonciello
2024-10-31  4:09 ` [PATCH v3 02/22] platform/x86/dell: dell-pc: Create platform device Mario Limonciello
2024-10-31  4:09 ` [PATCH v3 03/22] ACPI: platform_profile: Add device pointer into platform profile handler Mario Limonciello
2024-11-02  2:13   ` Mark Pearson
2024-11-02  9:56   ` Maximilian Luz
2024-10-31  4:09 ` [PATCH v3 04/22] ACPI: platform_profile: Add platform handler argument to platform_profile_remove() Mario Limonciello
2024-10-31  4:09 ` [PATCH v3 05/22] ACPI: platform_profile: Add a list to platform profile handler Mario Limonciello
2024-10-31  4:09 ` [PATCH v3 06/22] ACPI: platform_profile: Move sanity check out of the mutex Mario Limonciello
2024-11-02  2:13   ` Mark Pearson
2024-10-31  4:09 ` [PATCH v3 07/22] ACPI: platform_profile: Use guard(mutex) for register/unregister Mario Limonciello
2024-10-31 10:16   ` Ilpo Järvinen
2024-10-31  4:09 ` [PATCH v3 08/22] ACPI: platform_profile: Use `scoped_cond_guard` for platform_profile_choices_show() Mario Limonciello
2024-10-31  4:09 ` [PATCH v3 09/22] ACPI: platform_profile: Use `scoped_cond_guard` for platform_profile_show() Mario Limonciello
2024-10-31  4:09 ` [PATCH v3 10/22] " Mario Limonciello
2024-10-31 10:15   ` Ilpo Järvinen [this message]
2024-10-31 13:16     ` Mario Limonciello
2024-10-31  4:09 ` [PATCH v3 11/22] ACPI: platform_profile: Use `scoped_cond_guard` for platform_profile_cycle() Mario Limonciello
2024-11-02  2:14   ` Mark Pearson
2024-10-31  4:09 ` [PATCH v3 12/22] ACPI: platform_profile: Only remove group when no more handler registered Mario Limonciello
2024-10-31  4:09 ` [PATCH v3 13/22] ACPI: platform_profile: Require handlers to support balanced profile Mario Limonciello
2024-10-31 20:39   ` Armin Wolf
2024-10-31 20:43     ` Mario Limonciello
2024-10-31 21:01       ` Armin Wolf
2024-10-31  4:09 ` [PATCH v3 14/22] ACPI: platform_profile: Notify change events on register and unregister Mario Limonciello
2024-11-02  2:14   ` Mark Pearson
2024-10-31  4:09 ` [PATCH v3 15/22] ACPI: platform_profile: Only show profiles common for all handlers Mario Limonciello
2024-11-02  2:15   ` Mark Pearson
2024-10-31  4:09 ` [PATCH v3 16/22] ACPI: platform_profile: Set profile for all registered handlers Mario Limonciello
2024-10-31 10:25   ` Ilpo Järvinen
2024-10-31 13:18     ` Mario Limonciello
2024-10-31 14:37       ` Ilpo Järvinen
2024-10-31 14:40         ` Mario Limonciello
2024-10-31  4:09 ` [PATCH v3 17/22] ACPI: platform_profile: Add concept of a "custom" profile Mario Limonciello
2024-11-02  2:15   ` Mark Pearson
2024-10-31  4:09 ` [PATCH v3 18/22] ACPI: platform_profile: Make sure all profile handlers agree on profile Mario Limonciello
2024-11-02  2:15   ` Mark Pearson
2024-10-31  4:09 ` [PATCH v3 19/22] ACPI: platform_profile: Check all profile handler to calculate next Mario Limonciello
2024-10-31 10:40   ` Ilpo Järvinen
2024-11-02  2:15   ` Mark Pearson
2024-10-31  4:09 ` [PATCH v3 20/22] ACPI: platform_profile: Register class device for platform profile handlers Mario Limonciello
2024-10-31 20:55   ` Armin Wolf
2024-10-31 21:54     ` Mario Limonciello
2024-11-01  1:54       ` Armin Wolf
2024-11-02  2:13     ` Mark Pearson
2024-11-02 23:46       ` Armin Wolf
2024-11-01 14:22   ` kernel test robot
2024-11-01 15:45   ` kernel test robot
2024-10-31  4:09 ` [PATCH v3 21/22] ACPI: platform_profile: Allow multiple handlers Mario Limonciello
2024-11-02  2:15   ` Mark Pearson
2024-10-31  4:09 ` [PATCH v3 22/22] platform/x86/amd: pmf: Drop all quirks Mario Limonciello

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=64f0b33b-3345-d9a6-d174-2a823adee216@linux.intel.com \
    --to=ilpo.jarvinen@linux.intel.com \
    --cc=Shyam-sundar.S-k@amd.com \
    --cc=aichao@kylinos.cn \
    --cc=alexbelm48@gmail.com \
    --cc=corentin.chary@gmail.com \
    --cc=hdegoede@redhat.com \
    --cc=hmh@hmh.eng.br \
    --cc=ibm-acpi-devel@lists.sourceforge.net \
    --cc=ike.pan@canonical.com \
    --cc=jlee@suse.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luke@ljones.dev \
    --cc=luzmaximilian@gmail.com \
    --cc=mario.limonciello@amd.com \
    --cc=matthew.schwartz@linux.dev \
    --cc=mpearson-lenovo@squebb.ca \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=rafael@kernel.org \
    --cc=soyer@irl.hu \
    --cc=u.kleine-koenig@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox