From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: [PATCH for-4.5 v2 4/8] xen: arm: Use SMP barriers when that is all which is required. Date: Thu, 13 Feb 2014 12:38:04 +0000 Message-ID: <1392295088-24219-4-git-send-email-ian.campbell@citrix.com> References: <1392295040.31985.7.camel@kazak.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1392295040.31985.7.camel@kazak.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: julien.grall@linaro.org, tim@xen.org, Ian Campbell , stefano.stabellini@eu.citrix.com List-Id: xen-devel@lists.xenproject.org SMP barriers can be used when all we care about is synchronising against other processors. Signed-off-by: Ian Campbell Acked-by: Tim Deegan --- v2: Turn cpu_die mb()s into smp_mb()s. --- xen/arch/arm/mm.c | 2 +- xen/arch/arm/smpboot.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c index f608020..ff19e39 100644 --- a/xen/arch/arm/mm.c +++ b/xen/arch/arm/mm.c @@ -967,7 +967,7 @@ void share_xen_page_with_guest(struct page_info *page, 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. */ diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c index a829957..ce68d34 100644 --- a/xen/arch/arm/smpboot.c +++ b/xen/arch/arm/smpboot.c @@ -298,12 +298,12 @@ void __cpuinit start_secondary(unsigned long boot_phys_offset, /* 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(); @@ -330,7 +330,7 @@ void __cpu_disable(void) 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(). */ @@ -411,10 +411,10 @@ void __cpu_die(unsigned int 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(); } /* -- 1.7.10.4