https://git.reactos.org/?p=reactos.git;a=commitdiff;h=79c29720352853f7d2e07…
commit 79c29720352853f7d2e0795f45811653c063ac2b
Author: Jérôme Gardou <jerome.gardou(a)reactos.org>
AuthorDate: Tue Jun 22 12:00:46 2021 +0200
Commit: Jérôme Gardou <zefklop(a)users.noreply.github.com>
CommitDate: Tue Jun 29 11:49:20 2021 +0200
[NTOS:KD] Release lock before calling KdpPrint
Avoiding resursive spinlock acquisition
---
ntoskrnl/kd/kdio.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/ntoskrnl/kd/kdio.c b/ntoskrnl/kd/kdio.c
index 9c35c9586e9..3dabd050d26 100644
--- a/ntoskrnl/kd/kdio.c
+++ b/ntoskrnl/kd/kdio.c
@@ -772,6 +772,9 @@ KdReceivePacket(
OldIrql = KdpAcquireLock(&KdpSerialSpinLock);
}
+ /* Release the spinlock */
+ KdpReleaseLock(&KdpSerialSpinLock, OldIrql);
+
/* Print a new line */
*StringChar.Buffer = '\n';
KdpPrintString(&StringChar);
@@ -783,9 +786,6 @@ KdReceivePacket(
if (!(KdbDebugState & KD_DEBUG_KDSERIAL))
KbdEnableMouse();
- /* Release the spinlock */
- KdpReleaseLock(&KdpSerialSpinLock, OldIrql);
-
#endif
return KdPacketReceived;
}