Commit 15176b81 authored by Kaushlendra Kumar's avatar Kaushlendra Kumar Committed by Rafael J. Wysocki
Browse files

thermal: int340x: Fix sysfs group leak on DLVR registration failure



When DLVR sysfs group creation fails in proc_thermal_rfim_add(),
the function returns immediately without cleaning up the FIVR group
that may have been created earlier.

Add proper error unwinding to remove the FIVR group before returning
failure.

Signed-off-by: default avatarKaushlendra Kumar <kaushlendra.kumar@intel.com>
Acked-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Link: https://patch.msgid.link/LV3PR11MB876881B77D32A2854AD2908EF563A@LV3PR11MB8768.namprd11.prod.outlook.com


Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 0506158a
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -467,9 +467,12 @@ int proc_thermal_rfim_add(struct pci_dev *pdev, struct proc_thermal_device *proc
			break;
		}
		ret = sysfs_create_group(&pdev->dev.kobj, &dlvr_attribute_group);
		if (ret)
		if (ret) {
			if (proc_priv->mmio_feature_mask & PROC_THERMAL_FEATURE_FIVR)
				sysfs_remove_group(&pdev->dev.kobj, &fivr_attribute_group);
			return ret;
		}
	}

	if (proc_priv->mmio_feature_mask & PROC_THERMAL_FEATURE_DVFS) {
		ret = sysfs_create_group(&pdev->dev.kobj, &dvfs_attribute_group);