Re: [PATCH] hwmon: (dell-smm) Simplify with cleanup.h

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Le 03/07/2024 à 10:31, Krzysztof Kozlowski a écrit :
Allocate memory, which is being freed at end of the scope, to make the
code a bit simpler.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
---
  drivers/hwmon/dell-smm-hwmon.c | 7 +++----
  1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/hwmon/dell-smm-hwmon.c b/drivers/hwmon/dell-smm-hwmon.c
index 0362a13f6525..e72e26db6e10 100644
--- a/drivers/hwmon/dell-smm-hwmon.c
+++ b/drivers/hwmon/dell-smm-hwmon.c
@@ -14,6 +14,7 @@
#include <linux/acpi.h>
  #include <linux/capability.h>
+#include <linux/cleanup.h>
  #include <linux/cpu.h>
  #include <linux/ctype.h>
  #include <linux/delay.h>
@@ -1095,9 +1096,9 @@ static int dell_smm_init_cdev(struct device *dev, u8 fan_num)
  	struct thermal_cooling_device *cdev;
  	struct dell_smm_cooling_data *cdata;
  	int ret = 0;
-	char *name;
- name = kasprintf(GFP_KERNEL, "dell-smm-fan%u", fan_num + 1);
+	char *name __free(kfree) = kasprintf(GFP_KERNEL, "dell-smm-fan%u",
+					     fan_num + 1);
  	if (!name)
  		return -ENOMEM;
@@ -1115,8 +1116,6 @@ static int dell_smm_init_cdev(struct device *dev, u8 fan_num)
  		ret = -ENOMEM;
  	}
- kfree(name);
-
  	return ret;
  }

Hi,

going one step further, this could even be:

	cdata = devm_kmalloc(dev, sizeof(*cdata), GFP_KERNEL);
	if (!cdata)
		return -ENOMEM;

	cdata->fan_num = fan_num;
	cdata->data = data;
cdev = devm_thermal_of_cooling_device_register(dev, NULL, name, cdata, &dell_smm_cooling_ops);
	if (IS_ERR(cdev)) {
		devm_kfree(dev, cdata);
		return PTR_ERR(cdev);
	}

	return 0;


This reduces indentation and is slightly more common when testing after devm_kmalloc()


Just my 2c,

CJ




[Index of Archives]     [LM Sensors]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux