summaryrefslogtreecommitdiff
path: root/drivers/devfreq
diff options
context:
space:
mode:
authorJoonyoung Shim <jy0922.shim@samsung.com>2015-11-02 18:44:25 +0900
committerSeung-Woo Kim <sw0312.kim@samsung.com>2016-12-14 13:48:20 +0900
commitf5e9ccc6e211ac3edd0d385c3df98c0802683f81 (patch)
tree6f8ba080097e5db83b247fe4c63778bcbba1d9a5 /drivers/devfreq
parentadb9a35c1fcf94ebf654e1499b98d8cbbeca5b67 (diff)
Revert "devfreq: Remove mutex deadlock caused by modification of update_devfreq()"
This reverts commit 0d046ecc157975c44a1c837eae5dd7c420160968. Refer commit 2bf9b157448b ("LOCAL / PM / devfreq: rollback mutex locking for update_devfreq()"). Already it was used in exynos-next-4.0.4 branch. Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Diffstat (limited to 'drivers/devfreq')
-rw-r--r--drivers/devfreq/governor_performance.c5
-rw-r--r--drivers/devfreq/governor_powersave.c5
-rw-r--r--drivers/devfreq/governor_userspace.c3
3 files changed, 10 insertions, 3 deletions
diff --git a/drivers/devfreq/governor_performance.c b/drivers/devfreq/governor_performance.c
index 8f157ff814a5..c72f942f30a8 100644
--- a/drivers/devfreq/governor_performance.c
+++ b/drivers/devfreq/governor_performance.c
@@ -32,8 +32,11 @@ static int devfreq_performance_handler(struct devfreq *devfreq,
{
int ret = 0;
- if (event == DEVFREQ_GOV_START)
+ if (event == DEVFREQ_GOV_START) {
+ mutex_lock(&devfreq->lock);
ret = update_devfreq(devfreq);
+ mutex_unlock(&devfreq->lock);
+ }
return ret;
}
diff --git a/drivers/devfreq/governor_powersave.c b/drivers/devfreq/governor_powersave.c
index 2deb8b01d0d6..0c6bed567e6d 100644
--- a/drivers/devfreq/governor_powersave.c
+++ b/drivers/devfreq/governor_powersave.c
@@ -29,8 +29,11 @@ static int devfreq_powersave_handler(struct devfreq *devfreq,
{
int ret = 0;
- if (event == DEVFREQ_GOV_START)
+ if (event == DEVFREQ_GOV_START) {
+ mutex_lock(&devfreq->lock);
ret = update_devfreq(devfreq);
+ mutex_unlock(&devfreq->lock);
+ }
return ret;
}
diff --git a/drivers/devfreq/governor_userspace.c b/drivers/devfreq/governor_userspace.c
index 5f2a09f4c5d3..35de6e83c1fe 100644
--- a/drivers/devfreq/governor_userspace.c
+++ b/drivers/devfreq/governor_userspace.c
@@ -51,6 +51,7 @@ static ssize_t store_freq(struct device *dev, struct device_attribute *attr,
int err = 0;
+ mutex_lock(&devfreq->lock);
data = devfreq->data;
sscanf(buf, "%lu", &wanted);
@@ -59,7 +60,7 @@ static ssize_t store_freq(struct device *dev, struct device_attribute *attr,
err = update_devfreq(devfreq);
if (err == 0)
err = count;
-
+ mutex_unlock(&devfreq->lock);
return err;
}