diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2010-05-14 20:37:02 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2010-05-14 20:37:02 +0100 |
commit | 7f01473211b2586130c653d3b1ac15acc082d4df (patch) | |
tree | 48cda4464ba8a8ff424e5c3d7dd9d0aa3a9fa9c3 /xen/common/tasklet.c | |
parent | f9ffb1134c8be2f6bffd14578c179d3f12371abd (diff) | |
download | xen-7f01473211b2586130c653d3b1ac15acc082d4df.tar.gz xen-7f01473211b2586130c653d3b1ac15acc082d4df.tar.bz2 xen-7f01473211b2586130c653d3b1ac15acc082d4df.zip |
Remove many uses of cpu_possible_map and iterators over NR_CPUS.
The significant remaining culprits for x86 are credit2, hpet, and
percpu-area subsystems. To be dealt with in a separate patch.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/common/tasklet.c')
-rw-r--r-- | xen/common/tasklet.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/xen/common/tasklet.c b/xen/common/tasklet.c index b898535223..2e23232c41 100644 --- a/xen/common/tasklet.c +++ b/xen/common/tasklet.c @@ -19,7 +19,7 @@ #include <xen/cpu.h> /* Some subsystems call into us before we are initialised. We ignore them. */ -static cpumask_t tasklets_initialised; +static bool_t tasklets_initialised; DEFINE_PER_CPU(unsigned long, tasklet_work_to_do); @@ -44,7 +44,7 @@ void tasklet_schedule_on_cpu(struct tasklet *t, unsigned int cpu) spin_lock_irqsave(&tasklet_lock, flags); - if ( cpu_isset(cpu, tasklets_initialised) && !t->is_dead ) + if ( tasklets_initialised && !t->is_dead ) { t->scheduled_on = cpu; if ( !t->is_running ) @@ -174,9 +174,9 @@ static int cpu_callback( switch ( action ) { case CPU_UP_PREPARE: - if ( !cpu_test_and_set(cpu, tasklets_initialised) ) - INIT_LIST_HEAD(&per_cpu(tasklet_list, cpu)); + INIT_LIST_HEAD(&per_cpu(tasklet_list, cpu)); break; + case CPU_UP_CANCELED: case CPU_DEAD: migrate_tasklets_from_cpu(cpu); break; @@ -196,6 +196,7 @@ void __init tasklet_subsys_init(void) void *hcpu = (void *)(long)smp_processor_id(); cpu_callback(&cpu_nfb, CPU_UP_PREPARE, hcpu); register_cpu_notifier(&cpu_nfb); + tasklets_initialised = 1; } /* |