Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8516aadb authored by Taniya Das's avatar Taniya Das
Browse files

cpufreq: qcom: Add null pointer check for get_cpu_device



Validate the cpu_dev before passing it to dev_pm_opp_add function.

Change-Id: I815cc32b17b33f6766d5d61e9daafd93445781b4
Signed-off-by: default avatarTaniya Das <tdas@codeaurora.org>
parent 090c2c57
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
 * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
 */

#include <linux/cpufreq.h>
@@ -364,7 +364,7 @@ static struct cpufreq_driver cpufreq_qcom_hw_driver = {
static int qcom_cpufreq_hw_read_lut(struct platform_device *pdev,
				    struct cpufreq_qcom *c)
{
	struct device *dev = &pdev->dev;
	struct device *dev = &pdev->dev, *cpu_dev;
	void __iomem *base_freq, *base_volt;
	u32 data, src, lval, i, core_count, prev_cc, prev_freq, cur_freq, volt;
	u32 vc;
@@ -417,8 +417,12 @@ static int qcom_cpufreq_hw_read_lut(struct platform_device *pdev,
		prev_freq = cur_freq;

		cur_freq *= 1000;
		for_each_cpu(cpu, &c->related_cpus)
			dev_pm_opp_add(get_cpu_device(cpu), cur_freq, volt);
		for_each_cpu(cpu, &c->related_cpus) {
			cpu_dev = get_cpu_device(cpu);
			if (!cpu_dev)
				continue;
			dev_pm_opp_add(cpu_dev, cur_freq, volt);
		}
	}

	c->table[i].frequency = CPUFREQ_TABLE_END;