[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen staging] sched: fix build when NR_CPUS == 1



commit 2de43f834ad2d758dd7b3441a6d1398491f18eae
Author:     Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Tue Mar 2 12:29:16 2021 +0100
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Tue Mar 2 12:29:16 2021 +0100

    sched: fix build when NR_CPUS == 1
    
    In this case the compiler is recognizing that no valid array indexes
    remain, and hence e.g. reports:
    
    core.c: In function 'cpu_schedule_up':
    core.c:2769:19: error: array subscript 1 is above array bounds
    of 'struct vcpu *[1]' [-Werror=array-bounds]
     2769 |     if ( idle_vcpu[cpu] == NULL )
          |          ~~~~~~~~~^~~~~
    
    Reported-by: Connor Davis <connojdavis@xxxxxxxxx>
    Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
    Reviewed-by: Dario Faggioli <dfaggioli@xxxxxxxx>
    Release-Acked-by: Ian Jackson <iwj@xxxxxxxxxxxxxx>
---
 xen/common/sched/core.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index 2b974fd6f8..6d34764d38 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -2768,6 +2768,12 @@ static int cpu_schedule_up(unsigned int cpu)
     if ( cpu == 0 )
         return 0;
 
+    /*
+     * Guard in particular against the compiler suspecting out-of-bounds
+     * array accesses below when NR_CPUS=1.
+     */
+    BUG_ON(cpu >= NR_CPUS);
+
     if ( idle_vcpu[cpu] == NULL )
         vcpu_create(idle_vcpu[0]->domain, cpu);
     else
--
generated by git-patchbot for /home/xen/git/xen.git#staging



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.