Author: fireball
Date: Sun Sep 9 18:45:38 2007
New Revision: 28980
URL:
http://svn.reactos.org/svn/reactos?rev=28980&view=rev
Log:
- Revert 27476: another attempt (previously, dgorbachev tried to "fix" this
code) to double-release spinlocks. There are even comments in some uncertain cases about
this.
For future generations: Have a look at SpiGetNextLunRequest(), it's full of
KeReleaseSpinLock()s.
Modified:
trunk/reactos/drivers/storage/scsiport/scsiport.c
Modified: trunk/reactos/drivers/storage/scsiport/scsiport.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/scsiport/s…
==============================================================================
--- trunk/reactos/drivers/storage/scsiport/scsiport.c (original)
+++ trunk/reactos/drivers/storage/scsiport/scsiport.c Sun Sep 9 18:45:38 2007
@@ -2527,7 +2527,6 @@
{
/* Get next logical unit request */
SpiGetNextRequestFromLun(DeviceExtension, LunExtension);
- KeReleaseSpinLock(&DeviceExtension->SpinLock, Irql);
/* SpiGetNextRequestFromLun() releases the spinlock */
KeLowerIrql(Irql);
@@ -4167,7 +4166,6 @@
{
/* Start the next packet */
SpiGetNextRequestFromLun(DeviceExtension, LunExtension);
- KeReleaseSpinLockFromDpcLevel(&DeviceExtension->SpinLock);
}
else
{
@@ -4175,7 +4173,7 @@
KeReleaseSpinLockFromDpcLevel(&DeviceExtension->SpinLock);
}
- DPRINT("IoCompleting request IRP 0x%08p\n", Irp);
+ DPRINT("IoCompleting request IRP 0x%p\n", Irp);
IoCompleteRequest(Irp, IO_DISK_INCREMENT);
@@ -4283,10 +4281,7 @@
&& (Srb->SrbFlags & SRB_FLAGS_NO_QUEUE_FREEZE))
{
if (LunExtension->RequestTimeout == -1)
- {
SpiGetNextRequestFromLun(DeviceExtension, LunExtension);
- KeReleaseSpinLockFromDpcLevel(&DeviceExtension->SpinLock);
- }
else
KeReleaseSpinLockFromDpcLevel(&DeviceExtension->SpinLock);
}