https://git.reactos.org/?p=reactos.git;a=commitdiff;h=91948dea80126028a05e3…
commit 91948dea80126028a05e3ee83f9857d06ed5370f
Author: Timo Kreuzer <timo.kreuzer(a)reactos.org>
AuthorDate: Thu Dec 12 14:44:05 2024 +0200
Commit: Timo Kreuzer <timo.kreuzer(a)reactos.org>
CommitDate: Mon Dec 16 16:18:45 2024 +0200
[NTOS:KE/x64] Fix handling of PCR::UserRsp
This is a temporary helper for the system call entry point to store the user mode stack, before switching to the kernel mode stack. Initially it was copied to the trap frame inside KiSystemCallHandler. This has been moved to the system call entry point, but some remnants remained. The problem is that KiSystemCallHandler can be called twice in a system call (when the call is the first GUI call and the stack needs to be extended). In that scenario, when the thread was preempted, a new v [...]
---
ntoskrnl/ke/amd64/traphandler.c | 5 ++---
ntoskrnl/ke/amd64/usercall.c | 3 ---
2 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/ntoskrnl/ke/amd64/traphandler.c b/ntoskrnl/ke/amd64/traphandler.c
index dc72d08fc63..ef2cb4d7dae 100644
--- a/ntoskrnl/ke/amd64/traphandler.c
+++ b/ntoskrnl/ke/amd64/traphandler.c
@@ -159,9 +159,8 @@ KiSystemCallHandler(
/* We don't have an exception frame yet */
TrapFrame->ExceptionFrame = 0;
- /* Before enabling interrupts get the user rsp from the KPCR */
- UserRsp = __readgsqword(FIELD_OFFSET(KIPCR, UserRsp));
- TrapFrame->Rsp = UserRsp;
+ /* Get the user Stack pointer */
+ UserRsp = TrapFrame->Rsp;
/* Enable interrupts */
_enable();
diff --git a/ntoskrnl/ke/amd64/usercall.c b/ntoskrnl/ke/amd64/usercall.c
index 9bcc81384b4..81f7a81fdfc 100644
--- a/ntoskrnl/ke/amd64/usercall.c
+++ b/ntoskrnl/ke/amd64/usercall.c
@@ -318,9 +318,6 @@ KeUserModeCallback(
/* Restore stack and return */
*UserStackPointer = OldStack;
-#ifdef _M_AMD64 // could probably move the update to TrapFrame->Rsp from the C handler to the asm code
- __writegsqword(FIELD_OFFSET(KIPCR, UserRsp), OldStack);
-#endif
return CallbackStatus;
}
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=5df3a0bb4aeb73f752182…
commit 5df3a0bb4aeb73f7521828225d5ae00b68f4c3d0
Author: Doug Lyons <douglyons(a)douglyons.com>
AuthorDate: Mon Dec 16 04:42:47 2024 -0600
Commit: GitHub <noreply(a)github.com>
CommitDate: Mon Dec 16 13:42:47 2024 +0300
[EVENTVWR] Fix typo in Romanian (ro-RO) translation (#7561)
Addendum to 0.4.16-dev-323-g c212c184f39 (#7352).
In the usage help message one line started with '\pentru', but it should have been '\tpentru'.
Fixes GCC compiler error:
base/applications/mscutils/eventvwr/lang/ro-RO.rc:177: unrecognized escape sequence
Co-authored-by: George Bișoc <george.bisoc(a)reactos.org>
---
base/applications/mscutils/eventvwr/lang/ro-RO.rc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/base/applications/mscutils/eventvwr/lang/ro-RO.rc b/base/applications/mscutils/eventvwr/lang/ro-RO.rc
index 947cfad7da7..b888fd857a8 100644
--- a/base/applications/mscutils/eventvwr/lang/ro-RO.rc
+++ b/base/applications/mscutils/eventvwr/lang/ro-RO.rc
@@ -179,7 +179,7 @@ BEGIN
EventVwr [numele computerului] [/L:<fișier de jurnal de evenimente>] [/?]\n\
\n\
""numele computerului"" : Specifică computerul de la distanță unde să se conecteze\n\
-\pentru a prelua evenimentele de afișat. Dacă nu este specificat niciun nume,\n\
+\tpentru a prelua evenimentele de afișat. Dacă nu este specificat niciun nume,\n\
\tcomputerul local este folosit.\n\
\n\
/L:<fișier de jurnal de evenimente> : Specifică deschiderea unui fișier.\n\