diff options
author | li feng <li1.feng@intel.com> | 2017-10-24 18:29:31 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-10-26 15:57:46 -0700 |
commit | 9442982a9b4a9e5500cb57499a3aa7665354277d (patch) | |
tree | 8b973b1b56a5530fac17f64cc4f277a45241bcef /core | |
parent | b94ee467d88832a451e32b2b71b970c85444fd4e (diff) | |
download | chrome-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')
-rw-r--r-- | core/minute-ia/task.c | 1 |
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) |