Fix normal memory bakery lock implementation
authorSoby Mathew <soby.mathew@arm.com>
Mon, 14 Nov 2016 17:19:35 +0000 (17:19 +0000)
committerSoby Mathew <soby.mathew@arm.com>
Mon, 21 Nov 2016 17:10:26 +0000 (17:10 +0000)
commit95c1255967b46efa3e7add1eafd9e35862bfc677
tree016254c127cec36f88ff14e654be4dafbbfde58f
parent686019d206949086f0c193c7b21a0cbbc3fa6dfd
Fix normal memory bakery lock implementation

This patch fixes an issue in the normal memory bakery lock
implementation. During assertion of lock status, there is a possibility
that the assertion could fail. This is because the previous update done
to the lock status by the owning CPU when not participating in cache
coherency could result in stale data in the cache due to cache maintenance
operations not propagating to all the caches. This patch fixes this issue
by doing an extra read cache maintenance operation prior to the assertion.

Fixes ARM-software/tf-issues#402

Change-Id: I0f38a7c52476a4f58e17ebe0141d256d198be88d
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
lib/locks/bakery/bakery_lock_normal.c