mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
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).
Arrange for core_parking.c's contents to not be needed altogether, and
then disable its building when NR_CPUS == 1.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
master commit: 4b0422f70f
master date: 2023-03-13 15:15:42 +0100
This commit is contained in:
1 parent
5ce8d2aef8
commit
4a6bedefe5
4 files changed
+13
-4
No files matched your search
@@ -8,7 +8,7 @@ config X86
|
||||
select ACPI_LEGACY_TABLES_LOOKUP
|
||||
select ALTERNATIVE_CALL
|
||||
select ARCH_SUPPORTS_INT128
|
||||
select CORE_PARKING
|
||||
imply CORE_PARKING
|
||||
select HAS_ALTERNATIVE
|
||||
select HAS_COMPAT
|
||||
select HAS_CPUFREQ
|
||||
|
||||
@@ -725,12 +725,17 @@ ret_t do_platform_op(XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op)
|
||||
case XEN_CORE_PARKING_SET:
|
||||
idle_nums = min_t(uint32_t,
|
||||
op->u.core_parking.idle_nums, num_present_cpus() - 1);
|
||||
ret = continue_hypercall_on_cpu(
|
||||
0, core_parking_helper, (void *)(unsigned long)idle_nums);
|
||||
if ( CONFIG_NR_CPUS > 1 )
|
||||
ret = continue_hypercall_on_cpu(
|
||||
0, core_parking_helper,
|
||||
(void *)(unsigned long)idle_nums);
|
||||
else if ( idle_nums )
|
||||
ret = -EINVAL;
|
||||
break;
|
||||
|
||||
case XEN_CORE_PARKING_GET:
|
||||
op->u.core_parking.idle_nums = get_cur_idle_nums();
|
||||
op->u.core_parking.idle_nums = CONFIG_NR_CPUS > 1
|
||||
? get_cur_idle_nums() : 0;
|
||||
ret = __copy_field_to_guest(u_xenpf_op, op, u.core_parking) ?
|
||||
-EFAULT : 0;
|
||||
break;
|
||||
|
||||
@@ -179,6 +179,9 @@ long arch_do_sysctl(
|
||||
ret = -EBUSY;
|
||||
break;
|
||||
}
|
||||
if ( CONFIG_NR_CPUS <= 1 )
|
||||
/* Mimic behavior of smt_up_down_helper(). */
|
||||
return 0;
|
||||
plug = op == XEN_SYSCTL_CPU_HOTPLUG_SMT_ENABLE;
|
||||
fn = smt_up_down_helper;
|
||||
hcpu = _p(plug);
|
||||
|
||||
@@ -10,6 +10,7 @@ config COMPAT
|
||||
|
||||
config CORE_PARKING
|
||||
bool
|
||||
depends on NR_CPUS > 1
|
||||
|
||||
config GRANT_TABLE
|
||||
bool "Grant table support" if EXPERT
|
||||
|
||||