Message ID | 20241031040952.109057-12-mario.limonciello@amd.com (mailing list archive) |
---|---|
State | Changes Requested, archived |
Headers | show |
Series | Add support for binding ACPI platform profile to multiple drivers | expand |
On Thu, Oct 31, 2024, at 12:09 AM, Mario Limonciello wrote: > Migrate away from using an interruptible mutex to scoped_cond_guard. > > Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> > --- > drivers/acpi/platform_profile.c | 39 +++++++++++++-------------------- > 1 file changed, 15 insertions(+), 24 deletions(-) > > diff --git a/drivers/acpi/platform_profile.c b/drivers/acpi/platform_profile.c > index 63a5f5ac33898..2d971dba2d917 100644 > --- a/drivers/acpi/platform_profile.c > +++ b/drivers/acpi/platform_profile.c > @@ -124,36 +124,27 @@ int platform_profile_cycle(void) > enum platform_profile_option next; > int err; > > - err = mutex_lock_interruptible(&profile_lock); > - if (err) > - return err; > + scoped_cond_guard(mutex_intr, return -ERESTARTSYS, &profile_lock) { > + if (!cur_profile) > + return -ENODEV; > > - if (!cur_profile) { > - mutex_unlock(&profile_lock); > - return -ENODEV; > - } > + err = cur_profile->profile_get(cur_profile, &profile); > + if (err) > + return err; > > - err = cur_profile->profile_get(cur_profile, &profile); > - if (err) { > - mutex_unlock(&profile_lock); > - return err; > - } > + next = find_next_bit_wrap(cur_profile->choices, PLATFORM_PROFILE_LAST, > + profile + 1); > > - next = find_next_bit_wrap(cur_profile->choices, PLATFORM_PROFILE_LAST, > - profile + 1); > + if (WARN_ON(next == PLATFORM_PROFILE_LAST)) > + return -EINVAL; > > - if (WARN_ON(next == PLATFORM_PROFILE_LAST)) { > - mutex_unlock(&profile_lock); > - return -EINVAL; > + err = cur_profile->profile_set(cur_profile, next); > + if (err) > + return err; > } > > - err = cur_profile->profile_set(cur_profile, next); > - mutex_unlock(&profile_lock); > - > - if (!err) > - sysfs_notify(acpi_kobj, NULL, "platform_profile"); > - > - return err; > + sysfs_notify(acpi_kobj, NULL, "platform_profile"); > + return 0; > } > EXPORT_SYMBOL_GPL(platform_profile_cycle); > > -- > 2.43.0 For patches 8 to 11 - Looks good to me (guards are new to me - I had to go read up on them. Very cool and a nice clean-up) Reviewed-by: Mark Pearson <mpearson-lenovo@squebb.ca> Mark
diff --git a/drivers/acpi/platform_profile.c b/drivers/acpi/platform_profile.c index 63a5f5ac33898..2d971dba2d917 100644 --- a/drivers/acpi/platform_profile.c +++ b/drivers/acpi/platform_profile.c @@ -124,36 +124,27 @@ int platform_profile_cycle(void) enum platform_profile_option next; int err; - err = mutex_lock_interruptible(&profile_lock); - if (err) - return err; + scoped_cond_guard(mutex_intr, return -ERESTARTSYS, &profile_lock) { + if (!cur_profile) + return -ENODEV; - if (!cur_profile) { - mutex_unlock(&profile_lock); - return -ENODEV; - } + err = cur_profile->profile_get(cur_profile, &profile); + if (err) + return err; - err = cur_profile->profile_get(cur_profile, &profile); - if (err) { - mutex_unlock(&profile_lock); - return err; - } + next = find_next_bit_wrap(cur_profile->choices, PLATFORM_PROFILE_LAST, + profile + 1); - next = find_next_bit_wrap(cur_profile->choices, PLATFORM_PROFILE_LAST, - profile + 1); + if (WARN_ON(next == PLATFORM_PROFILE_LAST)) + return -EINVAL; - if (WARN_ON(next == PLATFORM_PROFILE_LAST)) { - mutex_unlock(&profile_lock); - return -EINVAL; + err = cur_profile->profile_set(cur_profile, next); + if (err) + return err; } - err = cur_profile->profile_set(cur_profile, next); - mutex_unlock(&profile_lock); - - if (!err) - sysfs_notify(acpi_kobj, NULL, "platform_profile"); - - return err; + sysfs_notify(acpi_kobj, NULL, "platform_profile"); + return 0; } EXPORT_SYMBOL_GPL(platform_profile_cycle);
Migrate away from using an interruptible mutex to scoped_cond_guard. Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> --- drivers/acpi/platform_profile.c | 39 +++++++++++++-------------------- 1 file changed, 15 insertions(+), 24 deletions(-)