summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorMukesh Ojha <mojha@codeaurora.org>2017-05-05 14:14:56 +0530
committerMukesh Ojha <mojha@codeaurora.org>2017-05-18 17:52:26 +0530
commit81f3b9aab8e971219b8386b60f85b7344d2585ce (patch)
tree81148e4e706c15ffdc29c1a6d335e3bd067eaa9c /drivers
parent5404e35069576a8cd8203065f60975e34a5f727b (diff)
coresight-tmc: Adds lock to avoid race condition
There can be a case of race in the call to tmc_etr_bam_disable(). The call from usb_notifier() to tmc_etr_bam_disable() is within a lock 'drvdata->mem_lock' but the call from tmc_disable is not under any lock which can lead to race. This patch adds the missing lock. CRs-Fixed: 2047196 Change-Id: I3986b498ae8e2b2ddfe8f5b3315fdefab197d11c Signed-off-by: Mukesh Ojha <mojha@codeaurora.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/hwtracing/coresight/coresight-tmc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/hwtracing/coresight/coresight-tmc.c b/drivers/hwtracing/coresight/coresight-tmc.c
index c5998bd5ce02..316d8b783d94 100644
--- a/drivers/hwtracing/coresight/coresight-tmc.c
+++ b/drivers/hwtracing/coresight/coresight-tmc.c
@@ -1018,6 +1018,7 @@ static void tmc_disable(struct tmc_drvdata *drvdata, enum tmc_mode mode)
{
unsigned long flags;
+ mutex_lock(&drvdata->mem_lock);
spin_lock_irqsave(&drvdata->spinlock, flags);
if (drvdata->reading)
goto out;
@@ -1054,7 +1055,7 @@ out:
}
pm_runtime_put(drvdata->dev);
-
+ mutex_unlock(&drvdata->mem_lock);
dev_info(drvdata->dev, "TMC disabled\n");
}