KVM: x86: avoid useless copy of cpufreq policy

struct cpufreq_policy is quite big and it is not a good idea
to allocate one on the stack.  Just use cpufreq_cpu_get and
cpufreq_cpu_put which is even simpler.

Reported-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2020-02-28 10:49:10 +01:00
Родитель 4f337faf1c
Коммит aaec7c03de
1 изменённых файлов: 5 добавлений и 5 удалений

Просмотреть файл

@ -7190,15 +7190,15 @@ static void kvm_timer_init(void)
if (!boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) { if (!boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) {
#ifdef CONFIG_CPU_FREQ #ifdef CONFIG_CPU_FREQ
struct cpufreq_policy policy; struct cpufreq_policy *policy;
int cpu; int cpu;
memset(&policy, 0, sizeof(policy));
cpu = get_cpu(); cpu = get_cpu();
cpufreq_get_policy(&policy, cpu); policy = cpufreq_cpu_get(cpu);
if (policy.cpuinfo.max_freq) if (policy && policy->cpuinfo.max_freq)
max_tsc_khz = policy.cpuinfo.max_freq; max_tsc_khz = policy->cpuinfo.max_freq;
put_cpu(); put_cpu();
cpufreq_cpu_put(policy);
#endif #endif
cpufreq_register_notifier(&kvmclock_cpufreq_notifier_block, cpufreq_register_notifier(&kvmclock_cpufreq_notifier_block,
CPUFREQ_TRANSITION_NOTIFIER); CPUFREQ_TRANSITION_NOTIFIER);