Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

cpufreq: pcc: call CPUFREQ_POSTCHANGE notfier in error cases

PRECHANGE and POSTCHANGE notifiers must be called in groups, i.e
either both should be called or both shouldn't be.

In case we have started PRECHANGE notifier and found an error, we
must call POSTCHANGE notifier with freqs.new = freqs.old to guarantee
that the sequence of calling notifiers is complete.

This patch fixes it.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

authored by

Viresh Kumar and committed by
Rafael J. Wysocki
f77f1465 567f4f67

+2
+2
drivers/cpufreq/pcc-cpufreq.c
··· 243 243 return 0; 244 244 245 245 cmd_incomplete: 246 + freqs.new = freqs.old; 247 + cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE); 246 248 iowrite16(0, &pcch_hdr->status); 247 249 spin_unlock(&pcc_lock); 248 250 return -EINVAL;