aboutsummaryrefslogtreecommitdiffstats
path: root/xen/common/timer.c
diff options
context:
space:
mode:
authorKeir Fraser <keir@xen.org>2011-11-25 13:31:58 +0000
committerKeir Fraser <keir@xen.org>2011-11-25 13:31:58 +0000
commit5e0f79980e4ace10de74923f604ba523ede0ef90 (patch)
tree7bff8f2967eeb1e1ebc2264d54306309a7a924a4 /xen/common/timer.c
parentf73d1538994a1042069648a069e6688f0e290dbc (diff)
downloadxen-5e0f79980e4ace10de74923f604ba523ede0ef90.tar.gz
xen-5e0f79980e4ace10de74923f604ba523ede0ef90.tar.bz2
xen-5e0f79980e4ace10de74923f604ba523ede0ef90.zip
atomic: Define {read,write}_atomic() for reading/writing memory atomically.
Signed-off-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/common/timer.c')
-rw-r--r--xen/common/timer.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/xen/common/timer.c b/xen/common/timer.c
index 0547ea31a7..0dd2476483 100644
--- a/xen/common/timer.c
+++ b/xen/common/timer.c
@@ -239,7 +239,7 @@ static inline bool_t timer_lock(struct timer *timer)
for ( ; ; )
{
- cpu = atomic_read16(&timer->cpu);
+ cpu = read_atomic(&timer->cpu);
if ( unlikely(cpu == TIMER_CPU_status_killed) )
{
rcu_read_unlock(&timer_cpu_read_lock);
@@ -292,7 +292,7 @@ void init_timer(
memset(timer, 0, sizeof(*timer));
timer->function = function;
timer->data = data;
- atomic_write16(&timer->cpu, cpu);
+ write_atomic(&timer->cpu, cpu);
timer->status = TIMER_STATUS_inactive;
if ( !timer_lock_irqsave(timer, flags) )
BUG();
@@ -343,7 +343,7 @@ void migrate_timer(struct timer *timer, unsigned int new_cpu)
for ( ; ; )
{
- old_cpu = atomic_read16(&timer->cpu);
+ old_cpu = read_atomic(&timer->cpu);
if ( (old_cpu == new_cpu) || (old_cpu == TIMER_CPU_status_killed) )
{
rcu_read_unlock(&timer_cpu_read_lock);
@@ -375,7 +375,7 @@ void migrate_timer(struct timer *timer, unsigned int new_cpu)
deactivate_timer(timer);
list_del(&timer->inactive);
- atomic_write16(&timer->cpu, new_cpu);
+ write_atomic(&timer->cpu, new_cpu);
list_add(&timer->inactive, &per_cpu(timers, new_cpu).inactive);
if ( active )
@@ -402,7 +402,7 @@ void kill_timer(struct timer *timer)
list_del(&timer->inactive);
timer->status = TIMER_STATUS_killed;
old_cpu = timer->cpu;
- atomic_write16(&timer->cpu, TIMER_CPU_status_killed);
+ write_atomic(&timer->cpu, TIMER_CPU_status_killed);
spin_unlock_irqrestore(&per_cpu(timers, old_cpu).lock, flags);
@@ -573,7 +573,7 @@ static void migrate_timers_from_cpu(unsigned int old_cpu)
? old_ts->heap[1] : old_ts->list) != NULL )
{
remove_entry(t);
- atomic_write16(&t->cpu, new_cpu);
+ write_atomic(&t->cpu, new_cpu);
notify |= add_entry(t);
}
@@ -581,7 +581,7 @@ static void migrate_timers_from_cpu(unsigned int old_cpu)
{
t = list_entry(old_ts->inactive.next, struct timer, inactive);
list_del(&t->inactive);
- atomic_write16(&t->cpu, new_cpu);
+ write_atomic(&t->cpu, new_cpu);
list_add(&t->inactive, &new_ts->inactive);
}