mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
x86/mm: Fix operator associativity bug in mm-locks.h
In an order-enforcing wrapper for an "external" recursive lock, we aim to increment/decrement a recurse count and only update the lock ordering on zero counts. Unfortunately we incrementing/decrementing the pointer to the recurse count, rather than the count itself. Signed-off-by: Andres Lagar-Cavilla <andres@lagarcavilla.org> Acked-by: Tim Deegan <tim@xen.org> Committed-by: Tim Deegan <tim@xen.org>
This commit is contained in:
1 parent
d80c482605
commit
e4dbfcfe9d
1 file changed
+2
-2
@@ -81,7 +81,7 @@ static inline void _mm_enforce_order_lock_post(int level, int *unlock_level,
|
||||
{
|
||||
if ( recurse_count )
|
||||
{
|
||||
if ( *recurse_count++ == 0 )
|
||||
if ( (*recurse_count)++ == 0 )
|
||||
{
|
||||
*unlock_level = __get_lock_level();
|
||||
}
|
||||
@@ -125,7 +125,7 @@ static inline void mm_enforce_order_unlock(int unlock_level,
|
||||
if ( recurse_count )
|
||||
{
|
||||
BUG_ON(*recurse_count == 0);
|
||||
if ( *recurse_count-- == 1 )
|
||||
if ( (*recurse_count)-- == 1 )
|
||||
{
|
||||
__set_lock_level(unlock_level);
|
||||
}
|
||||
|
||||