From: Keir Fraser Date: Fri, 5 Dec 2008 15:22:21 +0000 (+0000) Subject: powernow: implement struct cpufreq_driver.verify X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14026^2~64 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=a886bbd1ef6360a71bbb65b6b7d67bc992e09c6e;p=xen.git powernow: implement struct cpufreq_driver.verify Without this, under rare conditions hypervisor crashes are possible due to this method being called without checking against NULL. Signed-off-by: Jan Beulich --- diff --git a/xen/arch/x86/acpi/cpufreq/powernow.c b/xen/arch/x86/acpi/cpufreq/powernow.c index b43de6a5cf..f69b425a0c 100644 --- a/xen/arch/x86/acpi/cpufreq/powernow.c +++ b/xen/arch/x86/acpi/cpufreq/powernow.c @@ -129,6 +129,16 @@ static int powernow_cpufreq_target(struct cpufreq_policy *policy, return result; } +static int powernow_cpufreq_verify(struct cpufreq_policy *policy) +{ + struct powernow_cpufreq_data *data; + + if (!policy || !(data = drv_data[policy->cpu])) + return -EINVAL; + + return cpufreq_frequency_table_verify(policy, data->freq_table); +} + static int powernow_cpufreq_cpu_init(struct cpufreq_policy *policy) { unsigned int i; @@ -243,6 +253,7 @@ static int powernow_cpufreq_cpu_exit(struct cpufreq_policy *policy) } static struct cpufreq_driver powernow_cpufreq_driver = { + .verify = powernow_cpufreq_verify, .target = powernow_cpufreq_target, .init = powernow_cpufreq_cpu_init, .exit = powernow_cpufreq_cpu_exit