summaryrefslogtreecommitdiff
path: root/core/minute-ia/task.c
diff options
context:
space:
mode:
authorli feng <li1.feng@intel.com>2017-10-24 18:29:31 -0700
committerchrome-bot <chrome-bot@chromium.org>2017-10-26 15:57:46 -0700
commit9442982a9b4a9e5500cb57499a3aa7665354277d (patch)
tree8b973b1b56a5530fac17f64cc4f277a45241bcef /core/minute-ia/task.c
parentb94ee467d88832a451e32b2b71b970c85444fd4e (diff)
downloadchrome-ec-9442982a9b4a9e5500cb57499a3aa7665354277d.tar.gz
ish: mutex_lock() fix
old_val may change value after cmpxchg, need to reset to 0 for next loop comparison. BUG=None BRANCH=master TEST=On Soraka modified for ISH board, running more than 4 hours sensor data fetching by host command, and no problem. Change-Id: I720230e196771071c8ba204458da6c4788d374ea Signed-off-by: li feng <li1.feng@intel.com> Reviewed-on: https://chromium-review.googlesource.com/738914 Commit-Ready: Li1 Feng <li1.feng@intel.com> Tested-by: Li1 Feng <li1.feng@intel.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'core/minute-ia/task.c')
-rw-r--r--core/minute-ia/task.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/core/minute-ia/task.c b/core/minute-ia/task.c
index 0c80f3c984..12f43b8b67 100644
--- a/core/minute-ia/task.c
+++ b/core/minute-ia/task.c
@@ -483,6 +483,7 @@ void mutex_lock(struct mutex *mtx)
atomic_or(&mtx->waiters, id);
do {
+ old_val = 0;
__asm__ __volatile__(
"lock; cmpxchg %1, %2\n"
: "=a" (old_val)