[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH] core-parking: fix build with gcc12 and NR_CPUS=1
Gcc12 takes issue with core_parking_remove()'s for ( ; i < cur_idle_nums; ++i ) core_parking_cpunum[i] = core_parking_cpunum[i + 1]; complaining that the right hand side array access is past the bounds of 1. Clearly the compiler can't know that cur_idle_nums can only ever be zero in this case (as the sole CPU cannot be parked). Beyond addressing the immediate issue also adjust core_parking_init(): There's no point registering any policy when there's no CPU to park. Since this still doesn't result in the compiler spotting that core_parking_policy is never written (and hence is continuously NULL), also amend core_parking_helper() to avoid eventual similar issues there (minimizing generated code at the same time). Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> --- a/xen/common/core_parking.c +++ b/xen/common/core_parking.c @@ -175,7 +175,7 @@ long cf_check core_parking_helper(void * unsigned int cpu; int ret = 0; - if ( !core_parking_policy ) + if ( !core_parking_policy || CONFIG_NR_CPUS == 1 ) return -EINVAL; while ( cur_idle_nums < idle_nums ) @@ -213,8 +213,9 @@ long cf_check core_parking_helper(void * bool core_parking_remove(unsigned int cpu) { - unsigned int i; bool found = false; +#if CONFIG_NR_CPUS > 1 + unsigned int i; spin_lock(&accounting_lock); @@ -230,6 +231,7 @@ bool core_parking_remove(unsigned int cp core_parking_cpunum[i] = core_parking_cpunum[i + 1]; spin_unlock(&accounting_lock); +#endif /* CONFIG_NR_CPUS > 1 */ return found; } @@ -260,9 +262,11 @@ static int __init register_core_parking_ static int __init cf_check core_parking_init(void) { - int ret = 0; + int ret; - if ( core_parking_controller == PERFORMANCE_FIRST ) + if ( CONFIG_NR_CPUS == 1 ) + ret = 0; + else if ( core_parking_controller == PERFORMANCE_FIRST ) ret = register_core_parking_policy(&performance_first); else ret = register_core_parking_policy(&power_first);
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |