From 91f79593a7f1a31c6fa7c7ae2e1c007aebf37dab Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 18 Jul 2009 17:57:38 +0000 Subject: [PATCH] - Don't change the lock's OldIrql value until we actually have the lock because we need this value to unlock correctly - This should fix bug 4704 svn path=/trunk/; revision=42054 --- reactos/drivers/network/tcpip/recmutex/recmutex.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reactos/drivers/network/tcpip/recmutex/recmutex.c b/reactos/drivers/network/tcpip/recmutex/recmutex.c index f1a54a6cc21..72e889fbd77 100644 --- a/reactos/drivers/network/tcpip/recmutex/recmutex.c +++ b/reactos/drivers/network/tcpip/recmutex/recmutex.c @@ -34,7 +34,6 @@ SIZE_T RecursiveMutexEnter( PRECURSIVE_MUTEX RecMutex, BOOLEAN ToWrite ) { if( CurrentIrql <= APC_LEVEL ) { ExAcquireFastMutex( &RecMutex->Mutex ); - RecMutex->OldIrql = CurrentIrql; while( RecMutex->Locked ) { ExReleaseFastMutex( &RecMutex->Mutex ); Status = KeWaitForSingleObject( &RecMutex->StateLockedEvent, @@ -44,6 +43,7 @@ SIZE_T RecursiveMutexEnter( PRECURSIVE_MUTEX RecMutex, BOOLEAN ToWrite ) { NULL ); ExAcquireFastMutex( &RecMutex->Mutex ); } + RecMutex->OldIrql = CurrentIrql; RecMutex->Locked = TRUE; RecMutex->Writer = ToWrite; RecMutex->CurrentThread = CurrentThread;