kexec: Fix dodgy use of cpu_present_map protecting percpu data access.
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 19 May 2010 17:38:19 +0000 (18:38 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 19 May 2010 17:38:19 +0000 (18:38 +0100)
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
xen/common/kexec.c

index e4dc1f039058e4014a0323120437f0079c0a6b6d..263faebcf556accc1940468cd49bcca404963870 100644 (file)
@@ -271,7 +271,7 @@ static int kexec_get_cpu(xen_kexec_range_t *range)
     int nr = range->nr;
     int nr_bytes = 0;
 
-    if ( nr < 0 || nr >= num_present_cpus() )
+    if ( nr < 0 || nr >= NR_CPUS || !cpu_online(nr) )
         return -EINVAL;
 
     nr_bytes += sizeof_note("CORE", sizeof(ELF_Prstatus));