From 775d6e5fb15806b8be8c3b7295e18b37037b2b77 Mon Sep 17 00:00:00 2001 From: Minho Ban Date: Fri, 20 Jan 2012 11:03:07 +0900 Subject: [PATCH] --- yaml --- r: 295860 b: refs/heads/master c: 0cdf3affd3ddf4ff1a88e32b89bc629d569793f3 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/arm/plat-samsung/clock.c | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 23a598f52c9c..7d9bf99be139 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8942ad89a059f9854ddf7223ca6e32869d7d9059 +refs/heads/master: 0cdf3affd3ddf4ff1a88e32b89bc629d569793f3 diff --git a/trunk/arch/arm/plat-samsung/clock.c b/trunk/arch/arm/plat-samsung/clock.c index 10f71179071f..65c5eca475e7 100644 --- a/trunk/arch/arm/plat-samsung/clock.c +++ b/trunk/arch/arm/plat-samsung/clock.c @@ -84,31 +84,35 @@ static int clk_null_enable(struct clk *clk, int enable) int clk_enable(struct clk *clk) { + unsigned long flags; + if (IS_ERR(clk) || clk == NULL) return -EINVAL; clk_enable(clk->parent); - spin_lock(&clocks_lock); + spin_lock_irqsave(&clocks_lock, flags); if ((clk->usage++) == 0) (clk->enable)(clk, 1); - spin_unlock(&clocks_lock); + spin_unlock_irqrestore(&clocks_lock, flags); return 0; } void clk_disable(struct clk *clk) { + unsigned long flags; + if (IS_ERR(clk) || clk == NULL) return; - spin_lock(&clocks_lock); + spin_lock_irqsave(&clocks_lock, flags); if ((--clk->usage) == 0) (clk->enable)(clk, 0); - spin_unlock(&clocks_lock); + spin_unlock_irqrestore(&clocks_lock, flags); clk_disable(clk->parent); }