mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-29 23:24:11 +08:00
thermal: intel: quark_dts: fix error pointer dereference
If alloc_soc_dts() fails, then we can just return. Trying to free
"soc_dts" will lead to an Oops.
Fixes: 8c18769396
("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>
This commit is contained in:
parent
1b72607d73
commit
f1b930e740
@ -400,22 +400,14 @@ MODULE_DEVICE_TABLE(x86cpu, qrk_thermal_ids);
|
|||||||
|
|
||||||
static int __init intel_quark_thermal_init(void)
|
static int __init intel_quark_thermal_init(void)
|
||||||
{
|
{
|
||||||
int err = 0;
|
|
||||||
|
|
||||||
if (!x86_match_cpu(qrk_thermal_ids) || !iosf_mbi_available())
|
if (!x86_match_cpu(qrk_thermal_ids) || !iosf_mbi_available())
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
soc_dts = alloc_soc_dts();
|
soc_dts = alloc_soc_dts();
|
||||||
if (IS_ERR(soc_dts)) {
|
if (IS_ERR(soc_dts))
|
||||||
err = PTR_ERR(soc_dts);
|
return PTR_ERR(soc_dts);
|
||||||
goto err_free;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err_free:
|
|
||||||
free_soc_dts(soc_dts);
|
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __exit intel_quark_thermal_exit(void)
|
static void __exit intel_quark_thermal_exit(void)
|
||||||
|
Loading…
Reference in New Issue
Block a user