]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
thermal: intel: int340x: Check return value of ptc_create_groups()
authorAravind Anilraj <aravindanilraj0702@gmail.com>
Sun, 29 Mar 2026 07:06:42 +0000 (03:06 -0400)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 26 May 2026 17:27:53 +0000 (19:27 +0200)
proc_thermal_ptc_add() ignores the return value of ptc_create_groups()
causing the driver to silenty continue even if sysfs group creation
fails.

The thermal control interface would be unavailable with no indication
of failure.

Check the return value and on failure clean up any sysfs groups that
were successfully created before the error, then propagate the error to
the caller which already handles it correctly via goto err_rem_rapl.

Signed-off-by: Aravind Anilraj <aravindanilraj0702@gmail.com>
Link: https://patch.msgid.link/20260329070642.10721-3-aravindanilraj0702@gmail.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/thermal/intel/int340x_thermal/platform_temperature_control.c

index 18ac5014d8dc2eb52651e4a88e41ec241e857113..d92a6f84a7788cf130b48e994853b1c5ea82fc92 100644 (file)
@@ -278,12 +278,18 @@ static void ptc_delete_debugfs(void)
 int proc_thermal_ptc_add(struct pci_dev *pdev, struct proc_thermal_device *proc_priv)
 {
        if (proc_priv->mmio_feature_mask & PROC_THERMAL_FEATURE_PTC) {
-               int i;
+               int i, ret;
 
                for (i = 0; i < PTC_MAX_INSTANCES; i++) {
                        ptc_instance[i].offset = ptc_offsets[i];
                        ptc_instance[i].pdev = pdev;
-                       ptc_create_groups(pdev, i, &ptc_instance[i]);
+                       ret = ptc_create_groups(pdev, i, &ptc_instance[i]);
+                       if (ret) {
+                               while (i--)
+                                       sysfs_remove_group(&pdev->dev.kobj,
+                                                       &ptc_instance[i].ptc_attr_group);
+                               return ret;
+                       }
                }
 
                ptc_create_debugfs();