From: yangkai Date: Fri, 22 Jul 2011 01:45:07 +0000 (+0800) Subject: fix bug of GIC crash X-Git-Tag: firefly_0821_release~10094 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2a95f8edcc694ff14aa07d256b3542063687f645;p=firefly-linux-kernel-4.4.55.git fix bug of GIC crash --- 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); }