]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ACPI: platform_profile: Improve platform_profile_unregister()
authorKurt Borja <kuurtb@gmail.com>
Wed, 12 Feb 2025 19:03:08 +0000 (14:03 -0500)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 18 Feb 2025 18:03:23 +0000 (19:03 +0100)
Drivers usually call this method on error/exit paths and do not check
for it's return value, which is always 0 anyway, so make it void.

This is safe to do as currently all drivers use
devm_platform_profile_register().

While at it, improve the style and make the function safer by checking
for IS_ERR_OR_NULL before dereferencing the device pointer.

Signed-off-by: Kurt Borja <kuurtb@gmail.com>
Reviewed-by: Mark Pearson <mpearson-lenovo@squebb.ca>
Link: https://patch.msgid.link/20250212190308.21209-1-kuurtb@gmail.com
[ rjw: Minor changelog edits ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/platform_profile.c
include/linux/platform_profile.h

index 1b6317f759f9e67e764de08307a0f84a8af680ba..f01455905830612410b0d1a76548f4c2eb874acb 100644 (file)
@@ -569,24 +569,23 @@ EXPORT_SYMBOL_GPL(platform_profile_register);
 /**
  * platform_profile_remove - Unregisters a platform profile class device
  * @dev: Class device
- *
- * Return: 0
  */
-int platform_profile_remove(struct device *dev)
+void platform_profile_remove(struct device *dev)
 {
-       struct platform_profile_handler *pprof = to_pprof_handler(dev);
-       int id;
+       struct platform_profile_handler *pprof;
+
+       if (IS_ERR_OR_NULL(dev))
+               return;
+
+       pprof = to_pprof_handler(dev);
+
        guard(mutex)(&profile_lock);
 
-       id = pprof->minor;
+       ida_free(&platform_profile_ida, pprof->minor);
        device_unregister(&pprof->dev);
-       ida_free(&platform_profile_ida, id);
 
        sysfs_notify(acpi_kobj, NULL, "platform_profile");
-
        sysfs_update_group(acpi_kobj, &platform_profile_group);
-
-       return 0;
 }
 EXPORT_SYMBOL_GPL(platform_profile_remove);
 
index 8ab5b0e8eb2c13e3ff470e7dcc0d474c72f5d14f..d5499eca9e1d3994476204d5d5d7130fdc5ac3d8 100644 (file)
@@ -47,7 +47,7 @@ struct platform_profile_ops {
 struct device *platform_profile_register(struct device *dev, const char *name,
                                         void *drvdata,
                                         const struct platform_profile_ops *ops);
-int platform_profile_remove(struct device *dev);
+void platform_profile_remove(struct device *dev);
 struct device *devm_platform_profile_register(struct device *dev, const char *name,
                                              void *drvdata,
                                              const struct platform_profile_ops *ops);