Commit cff89527 authored by Xuewen Yan's avatar Xuewen Yan Committed by Rafael J. Wysocki
Browse files

thermal: cpufreq_cooling: Check the policy first in cpufreq_cooling_register()



Since the policy needs to be accessed first when obtaining cpu devices,
first check whether the policy is legal before this.

Fixes: 5130802d ("thermal: cpu_cooling: Switch to QoS requests for freq limits")
Signed-off-by: default avatarXuewen Yan <xuewen.yan@unisoc.com>
Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 1ea252ef
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -501,17 +501,17 @@ __cpufreq_cooling_register(struct device_node *np,
	struct thermal_cooling_device_ops *cooling_ops;
	char *name;

	if (IS_ERR_OR_NULL(policy)) {
		pr_err("%s: cpufreq policy isn't valid: %p\n", __func__, policy);
		return ERR_PTR(-EINVAL);
	}

	dev = get_cpu_device(policy->cpu);
	if (unlikely(!dev)) {
		pr_warn("No cpu device for cpu %d\n", policy->cpu);
		return ERR_PTR(-ENODEV);
	}

	if (IS_ERR_OR_NULL(policy)) {
		pr_err("%s: cpufreq policy isn't valid: %p\n", __func__, policy);
		return ERR_PTR(-EINVAL);
	}

	i = cpufreq_table_count_valid_entries(policy);
	if (!i) {
		pr_debug("%s: CPUFreq table not found or has no valid entries\n",