SMP barriers can be used when all we care about is synchronising against other
processors.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Tim Deegan <tim@xen.org>
page->u.inuse.type_info |= PGT_validated | 1;
page_set_owner(page, d);
- wmb(); /* install valid domain ptr before updating refcnt. */
+ smp_wmb(); /* install valid domain ptr before updating refcnt. */
ASSERT((page->count_info & ~PGC_xen_heap) == 0);
/* Only add to the allocation list if the domain isn't dying. */
/* Run local notifiers */
notify_cpu_starting(cpuid);
- wmb();
+ smp_wmb();
/* Now report this CPU is up */
smp_up_cpu = MPIDR_INVALID;
cpumask_set_cpu(cpuid, &cpu_online_map);
- wmb();
+ smp_wmb();
local_irq_enable();
local_abort_enable();
if ( cpu_disable_scheduler(cpu) )
BUG();
- mb();
+ smp_mb();
/* Return to caller; eventually the IPI mechanism will unwind and the
* scheduler will drop to the idle loop, which will call stop_cpu(). */
process_pending_softirqs();
if ( (++i % 10) == 0 )
printk(KERN_ERR "CPU %u still not dead...\n", cpu);
- mb();
+ smp_mb();
}
cpu_is_dead = 0;
- mb();
+ smp_mb();
}
/*