On 10-11-23, 17:49, David Dai wrote: > diff --git a/drivers/cpufreq/virtual-cpufreq.c b/drivers/cpufreq/virtual-cpufreq.c > +static unsigned int virt_cpufreq_set_perf(struct cpufreq_policy *policy) > +{ > + writel_relaxed(policy->cached_target_freq, Drivers shouldn't be using the cached_target_freq directly. Use the target freq or index passed from cpufreq core. > +static int virt_cpufreq_cpu_exit(struct cpufreq_policy *policy) > +{ > + topology_clear_scale_freq_source(SCALE_FREQ_SOURCE_VIRT, policy->related_cpus); > + kfree(policy->freq_table); > + policy->freq_table = NULL; No need of doing this. Also the order of above two calls is wrong anyway. -- viresh