"dsb" must be written "dsb sy" on arm64. "dsb sy" is also valid (and
synonymous) on arm32 but we have a macro so lets use it.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Tim Deegan <tim@xen.org>
local_irq_disable();
if ( cpu_is_haltable(smp_processor_id()) )
- asm volatile ("dsb; wfi");
+ {
+ dsb();
+ wfi();
+ }
local_irq_enable();
do_tasklet();
/* TODO: handle boards where CPUIDs are not contiguous */
*gate = i;
flush_xen_dcache(*gate);
- asm volatile("isb; sev");
+ isb();
+ sev();
/* And wait for it to respond */
while ( ready_cpus < i )
smp_rmb();
/* Make sure the write happens before we sleep forever */
dsb();
isb();
- while ( 1 )
- asm volatile("wfi");
+ while ( 1 )
+ wfi();
}
/* Bring up a remote CPU */
/* we need to make sure that the change to smp_up_cpu is visible to
* secondary cpus with D-cache off */
flush_xen_dcache(smp_up_cpu);
- asm volatile("isb; sev");
+ isb();
+ sev();
while ( !cpu_online(cpu) )
{