|
@@ -235,7 +235,7 @@ static int membarrier_register_private_expedited(int flags)
|
|
|
* groups, which use the same mm. (CLONE_VM but not
|
|
* groups, which use the same mm. (CLONE_VM but not
|
|
|
* CLONE_THREAD).
|
|
* CLONE_THREAD).
|
|
|
*/
|
|
*/
|
|
|
- if (atomic_read(&mm->membarrier_state) & state)
|
|
|
|
|
|
|
+ if ((atomic_read(&mm->membarrier_state) & state) == state)
|
|
|
return 0;
|
|
return 0;
|
|
|
atomic_or(MEMBARRIER_STATE_PRIVATE_EXPEDITED, &mm->membarrier_state);
|
|
atomic_or(MEMBARRIER_STATE_PRIVATE_EXPEDITED, &mm->membarrier_state);
|
|
|
if (flags & MEMBARRIER_FLAG_SYNC_CORE)
|
|
if (flags & MEMBARRIER_FLAG_SYNC_CORE)
|