Bypass cnstruction and deconstruction for px statistic info( cpufreq_statistic_init and cpufreq_statistic_exit) in cpufreq CPPC mode.
Signed-off-by: Penny Zheng <penny.zh...@amd.com> --- v2 -> v3: - new commit --- xen/drivers/cpufreq/utility.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/xen/drivers/cpufreq/utility.c b/xen/drivers/cpufreq/utility.c index e690a484f1..f1fd2fdbce 100644 --- a/xen/drivers/cpufreq/utility.c +++ b/xen/drivers/cpufreq/utility.c @@ -98,6 +98,9 @@ int cpufreq_statistic_init(unsigned int cpu) if ( !pmpt ) return -EINVAL; + if ( !(pmpt->init & XEN_PX_INIT) ) + return 0; + spin_lock(cpufreq_statistic_lock); pxpt = per_cpu(cpufreq_statistic_data, cpu); @@ -147,8 +150,12 @@ int cpufreq_statistic_init(unsigned int cpu) void cpufreq_statistic_exit(unsigned int cpu) { struct pm_px *pxpt; + const struct processor_pminfo *pmpt = processor_pminfo[cpu]; spinlock_t *cpufreq_statistic_lock = &per_cpu(cpufreq_statistic_lock, cpu); + if ( !(pmpt->init & XEN_PX_INIT) ) + return; + spin_lock(cpufreq_statistic_lock); pxpt = per_cpu(cpufreq_statistic_data, cpu); -- 2.34.1