From 7930dd3d7bb3f263a32a262df3fcedc85b0c4265 Mon Sep 17 00:00:00 2001 From: Catalin Marinas Date: Fri, 20 Jul 2007 11:42:40 +0100 Subject: [PATCH] --- yaml --- r: 62647 b: refs/heads/master c: 0762097625711e829a008b64f42dc0ec74abb284 h: refs/heads/master i: 62645: b7ee420c49b376cb802356de518952b7a4333e07 62643: d2ddf88bb0ef4f525d313649c813df52065f5ff7 62639: d018e8277710849edb7bb63210bd7cbcf4b2f1b2 v: v3 --- [refs] | 2 +- trunk/arch/arm/mm/cache-l2x0.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index e3182bea2f9b..22b713710bc3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 13a63ab289627e977a045864b36792cf0b61364a +refs/heads/master: 0762097625711e829a008b64f42dc0ec74abb284 diff --git a/trunk/arch/arm/mm/cache-l2x0.c b/trunk/arch/arm/mm/cache-l2x0.c index 08a36f1b35d2..b4e9b734e0bd 100644 --- a/trunk/arch/arm/mm/cache-l2x0.c +++ b/trunk/arch/arm/mm/cache-l2x0.c @@ -17,6 +17,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include +#include #include #include @@ -25,14 +26,19 @@ #define CACHE_LINE_SIZE 32 static void __iomem *l2x0_base; +static DEFINE_SPINLOCK(l2x0_lock); static inline void sync_writel(unsigned long val, unsigned long reg, unsigned long complete_mask) { + unsigned long flags; + + spin_lock_irqsave(&l2x0_lock, flags); writel(val, l2x0_base + reg); /* wait for the operation to complete */ while (readl(l2x0_base + reg) & complete_mask) ; + spin_unlock_irqrestore(&l2x0_lock, flags); } static inline void cache_sync(void)