From 2a95f8edcc694ff14aa07d256b3542063687f645 Mon Sep 17 00:00:00 2001
From: yangkai <yangkai@ubuntu-fs>
Date: Fri, 22 Jul 2011 09:45:07 +0800
Subject: [PATCH] fix bug of GIC crash

---
 arch/arm/common/gic.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c
index 3ff84676ace7..f352d793a944 100755
--- a/arch/arm/common/gic.c
+++ b/arch/arm/common/gic.c
@@ -87,6 +87,7 @@ static void gic_ack_irq(unsigned int irq)
 	spin_lock(&irq_controller_lock);
 	writel(mask, gic_dist_base(irq) + GIC_DIST_ENABLE_CLEAR + (gic_irq(irq) / 32) * 4);
 	writel(gic_irq(irq), gic_cpu_base(irq) + GIC_CPU_EOI);
+	dsb();
 	spin_unlock(&irq_controller_lock);
 }
 
@@ -96,6 +97,7 @@ static void gic_mask_irq(unsigned int irq)
 
 	spin_lock(&irq_controller_lock);
 	writel(mask, gic_dist_base(irq) + GIC_DIST_ENABLE_CLEAR + (gic_irq(irq) / 32) * 4);
+	dsb();
 	spin_unlock(&irq_controller_lock);
 }
 
@@ -105,6 +107,7 @@ static void gic_unmask_irq(unsigned int irq)
 
 	spin_lock(&irq_controller_lock);
 	writel(mask, gic_dist_base(irq) + GIC_DIST_ENABLE_SET + (gic_irq(irq) / 32) * 4);
+	dsb();
 	spin_unlock(&irq_controller_lock);
 }
 
-- 
2.34.1