https://git.reactos.org/?p=reactos.git;a=commitdiff;h=79c29720352853f7d2e079...
commit 79c29720352853f7d2e0795f45811653c063ac2b Author: Jérôme Gardou jerome.gardou@reactos.org AuthorDate: Tue Jun 22 12:00:46 2021 +0200 Commit: Jérôme Gardou zefklop@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; }