cpufreq: Initialize policy before making it available for others to use
authorViresh Kumar <viresh.kumar@linaro.org>
Tue, 4 Mar 2014 03:44:00 +0000 (11:44 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 6 Mar 2014 12:25:29 +0000 (13:25 +0100)
commit5a7e56a5d29071bcccd947dee6e3b9f8e4eb3309
tree193f498e9337c598b56b00f1df8ee948a6184fe4
parent999976e0f6233322a878b0b7148c810544d6c8a8
cpufreq: Initialize policy before making it available for others to use

Policy must be fully initialized before it is being made available
for use by others. Otherwise cpufreq_cpu_get() would be able to grab
a half initialized policy structure that might not have affected_cpus
(for example) populated. Then, anybody accessing those fields will get
a wrong value and that will lead to unpredictable results.

In order to fix this, do all the necessary initialization before we
make the policy structure available via cpufreq_cpu_get(). That will
guarantee that any code accessing fields of the policy will get
correct data from them.

Reported-by: Saravana Kannan <skannan@codeaurora.org>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
[rjw: Changelog]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/cpufreq.c