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

Commit fdc75701 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Merge branch 'pm-cpufreq'

* pm-cpufreq:
  cpufreq/pasemi: fix use-after-free in pas_cpufreq_cpu_init()
parents c528adef e0a12445
Loading
Loading
Loading
Loading
+9 −14
Original line number Diff line number Diff line
@@ -131,10 +131,18 @@ static int pas_cpufreq_cpu_init(struct cpufreq_policy *policy)
	int err = -ENODEV;

	cpu = of_get_cpu_node(policy->cpu, NULL);
	if (!cpu)
		goto out;

	max_freqp = of_get_property(cpu, "clock-frequency", NULL);
	of_node_put(cpu);
	if (!cpu)
	if (!max_freqp) {
		err = -EINVAL;
		goto out;
	}

	/* we need the freq in kHz */
	max_freq = *max_freqp / 1000;

	dn = of_find_compatible_node(NULL, NULL, "1682m-sdc");
	if (!dn)
@@ -171,16 +179,6 @@ static int pas_cpufreq_cpu_init(struct cpufreq_policy *policy)
	}

	pr_debug("init cpufreq on CPU %d\n", policy->cpu);

	max_freqp = of_get_property(cpu, "clock-frequency", NULL);
	if (!max_freqp) {
		err = -EINVAL;
		goto out_unmap_sdcpwr;
	}

	/* we need the freq in kHz */
	max_freq = *max_freqp / 1000;

	pr_debug("max clock-frequency is at %u kHz\n", max_freq);
	pr_debug("initializing frequency table\n");

@@ -199,9 +197,6 @@ static int pas_cpufreq_cpu_init(struct cpufreq_policy *policy)
	cpufreq_generic_init(policy, pas_freqs, get_gizmo_latency());
	return 0;

out_unmap_sdcpwr:
	iounmap(sdcpwr_mapbase);

out_unmap_sdcasr:
	iounmap(sdcasr_mapbase);
out: