]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
thermal: intel: quark_dts: fix error pointer dereference
authorDan Carpenter <error27@gmail.com>
Mon, 27 Feb 2023 10:06:50 +0000 (13:06 +0300)
committerAndrea Righi <andrea.righi@canonical.com>
Tue, 14 Mar 2023 15:47:56 +0000 (16:47 +0100)
BugLink: https://bugs.launchpad.net/bugs/2011430
[ Upstream commit f1b930e740811d416de4d2074da48b6633a672c8 ]

If alloc_soc_dts() fails, then we can just return.  Trying to free
"soc_dts" will lead to an Oops.

Fixes: 8c1876939663 ("thermal: intel Quark SoC X1000 DTS thermal driver")
Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/thermal/intel/intel_quark_dts_thermal.c

index 3eafc6b0e6c307a951148f4dd5543aaef133b550..b43fbd5eaa6b41ed4276ba92623293eb56877eaf 100644 (file)
@@ -415,22 +415,14 @@ MODULE_DEVICE_TABLE(x86cpu, qrk_thermal_ids);
 
 static int __init intel_quark_thermal_init(void)
 {
-       int err = 0;
-
        if (!x86_match_cpu(qrk_thermal_ids) || !iosf_mbi_available())
                return -ENODEV;
 
        soc_dts = alloc_soc_dts();
-       if (IS_ERR(soc_dts)) {
-               err = PTR_ERR(soc_dts);
-               goto err_free;
-       }
+       if (IS_ERR(soc_dts))
+               return PTR_ERR(soc_dts);
 
        return 0;
-
-err_free:
-       free_soc_dts(soc_dts);
-       return err;
 }
 
 static void __exit intel_quark_thermal_exit(void)