Maybe dmc->df->lock is unnecessary to protect function exynos5_dmc_perf_events_check(dmc). If we have to protect, dmc->lock is more better and more effective. Also, it seems not needed to protect "if (ret) & dev_warn" branch. Signed-off-by: Bernard Zhao <bernard@xxxxxxxx> --- drivers/memory/samsung/exynos5422-dmc.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/memory/samsung/exynos5422-dmc.c b/drivers/memory/samsung/exynos5422-dmc.c index 22a43d662833..88e8ac8b5327 100644 --- a/drivers/memory/samsung/exynos5422-dmc.c +++ b/drivers/memory/samsung/exynos5422-dmc.c @@ -1345,16 +1345,14 @@ static irqreturn_t dmc_irq_thread(int irq, void *priv) int res; struct exynos5_dmc *dmc = priv; - mutex_lock(&dmc->df->lock); - exynos5_dmc_perf_events_check(dmc); + mutex_lock(&dmc->df->lock); res = update_devfreq(dmc->df); + mutex_unlock(&dmc->df->lock); if (res) dev_warn(dmc->dev, "devfreq failed with %d\n", res); - mutex_unlock(&dmc->df->lock); - return IRQ_HANDLED; } -- 2.26.2