Message ID | 20241008-b4-cleanup-h-of-node-put-thermal-v3-6-825122398f71@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | thermal: scope/cleanup.h improvements | expand |
On Tue, 08 Oct 2024 11:00:06 +0200 Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote: > Obtain the device node reference with scoped/cleanup.h to reduce error > handling and make the code a bit simpler. > > Reviewed-by: Chen-Yu Tsai <wenst@chromium.org> > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> LGTM Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> I wonder if we will eventually get to the point where we might as well use the scoped case for the few remaining instances where there is no early exit and then end up dropping the unscoped one. I guess we'll see. Keep up the good work dealing with all these! Jonathan
diff --git a/drivers/thermal/sun8i_thermal.c b/drivers/thermal/sun8i_thermal.c index 3203d8bd13a8fc2a9e5a59b3547cefc2440542c6..22674790629a7b549d1ce618998ff51f6553613e 100644 --- a/drivers/thermal/sun8i_thermal.c +++ b/drivers/thermal/sun8i_thermal.c @@ -9,6 +9,7 @@ */ #include <linux/bitmap.h> +#include <linux/cleanup.h> #include <linux/clk.h> #include <linux/device.h> #include <linux/interrupt.h> @@ -348,19 +349,18 @@ static void sun8i_ths_reset_control_assert(void *data) static struct regmap *sun8i_ths_get_sram_regmap(struct device_node *node) { - struct device_node *sram_node; struct platform_device *sram_pdev; struct regmap *regmap = NULL; - sram_node = of_parse_phandle(node, "allwinner,sram", 0); + struct device_node *sram_node __free(device_node) = + of_parse_phandle(node, "allwinner,sram", 0); if (!sram_node) return ERR_PTR(-ENODEV); sram_pdev = of_find_device_by_node(sram_node); if (!sram_pdev) { /* platform device might not be probed yet */ - regmap = ERR_PTR(-EPROBE_DEFER); - goto out_put_node; + return ERR_PTR(-EPROBE_DEFER); } /* If no regmap is found then the other device driver is at fault */ @@ -369,8 +369,7 @@ static struct regmap *sun8i_ths_get_sram_regmap(struct device_node *node) regmap = ERR_PTR(-EINVAL); platform_device_put(sram_pdev); -out_put_node: - of_node_put(sram_node); + return regmap; }