https://git.reactos.org/?p=reactos.git;a=commitdiff;h=8494688eebecb287973569...
commit 8494688eebecb287973569dc1261fd0741706324 Author: Jérôme Gardou jerome.gardou@reactos.org AuthorDate: Thu Mar 18 09:05:00 2021 +0100 Commit: Jérôme Gardou zefklop@users.noreply.github.com CommitDate: Thu Mar 18 12:24:21 2021 +0100
[NTOS:MM] Do not use atomic operations to set a bit while holding a lock.
Saving your fingers from typing it doesn't make it better code. --- ntoskrnl/mm/ARM3/expool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ntoskrnl/mm/ARM3/expool.c b/ntoskrnl/mm/ARM3/expool.c index fb55f9159ba..95bc21ad822 100644 --- a/ntoskrnl/mm/ARM3/expool.c +++ b/ntoskrnl/mm/ARM3/expool.c @@ -1734,7 +1734,7 @@ ExpFindAndRemoveTagBigPages(IN PVOID Va, // Set the free bit, and decrement the number of allocations. Finally, release // the lock and return the tag that was located // - InterlockedIncrement((PLONG)&Entry->Va); + Entry->Va = (PVOID)((ULONG_PTR)Entry->Va | POOL_BIG_TABLE_ENTRY_FREE);
ExpPoolBigEntriesInUse--;