https://git.reactos.org/?p=reactos.git;a=commitdiff;h=de1b195837867be375766…
commit de1b195837867be3757660f236d07e4f0cdf206a
Author: Timo Kreuzer <timo.kreuzer(a)reactos.org>
AuthorDate: Sat Feb 10 20:30:14 2018 +0100
Commit: Timo Kreuzer <timo.kreuzer(a)reactos.org>
CommitDate: Sun Jul 1 14:45:21 2018 +0200
[NDK] Fix the type of KPROCESS::ActiveProcessors
Also fix related logic in KiSwapProcess
---
ntoskrnl/ke/amd64/stubs.c | 8 +++-----
sdk/include/ndk/ketypes.h | 2 +-
2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/ntoskrnl/ke/amd64/stubs.c b/ntoskrnl/ke/amd64/stubs.c
index f63485eb78..9f8ed16e0d 100644
--- a/ntoskrnl/ke/amd64/stubs.c
+++ b/ntoskrnl/ke/amd64/stubs.c
@@ -278,13 +278,11 @@ KiSwapProcess(IN PKPROCESS NewProcess,
IN PKPROCESS OldProcess)
{
PKIPCR Pcr = (PKIPCR)KeGetPcr();
-#ifdef CONFIG_SMP
- LONG SetMember;
+#ifdef CONFIG_SMP
/* Update active processor mask */
- SetMember = (LONG)Pcr->SetMember;
- InterlockedXor((PLONG)&NewProcess->ActiveProcessors, SetMember);
- InterlockedXor((PLONG)&OldProcess->ActiveProcessors, SetMember);
+ InterlockedXor64((PLONG64)&NewProcess->ActiveProcessors,
Pcr->Prcb.SetMember);
+ InterlockedXor64((PLONG64)&OldProcess->ActiveProcessors,
Pcr->Prcb.SetMember);
#endif
/* Update CR3 */
diff --git a/sdk/include/ndk/ketypes.h b/sdk/include/ndk/ketypes.h
index 839a0d77d7..7a8c614a8d 100644
--- a/sdk/include/ndk/ketypes.h
+++ b/sdk/include/ndk/ketypes.h
@@ -1988,7 +1988,7 @@ typedef struct _KPROCESS
UCHAR Iopl;
UCHAR Unused;
#endif
- volatile ULONG ActiveProcessors;
+ volatile KAFFINITY ActiveProcessors;
ULONG KernelTime;
ULONG UserTime;
LIST_ENTRY ReadyListHead;