diff options
author | Joonyoung Shim <jy0922.shim@samsung.com> | 2015-11-02 18:44:25 +0900 |
---|---|---|
committer | Seung-Woo Kim <sw0312.kim@samsung.com> | 2016-12-14 13:48:20 +0900 |
commit | f5e9ccc6e211ac3edd0d385c3df98c0802683f81 (patch) | |
tree | 6f8ba080097e5db83b247fe4c63778bcbba1d9a5 /drivers/devfreq | |
parent | adb9a35c1fcf94ebf654e1499b98d8cbbeca5b67 (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.c | 5 | ||||
-rw-r--r-- | drivers/devfreq/governor_powersave.c | 5 | ||||
-rw-r--r-- | drivers/devfreq/governor_userspace.c | 3 |
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; } |