From 6481e255c27d254bc66bd9e09fc8b4e243f832b9 Mon Sep 17 00:00:00 2001 From: Aleksey Bragin Date: Sun, 9 Sep 2007 14:45:38 +0000 Subject: [PATCH] - 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. svn path=/trunk/; revision=28980 --- reactos/drivers/storage/scsiport/scsiport.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/reactos/drivers/storage/scsiport/scsiport.c b/reactos/drivers/storage/scsiport/scsiport.c index 0ba18aa405a..9b79ee5120a 100644 --- a/reactos/drivers/storage/scsiport/scsiport.c +++ b/reactos/drivers/storage/scsiport/scsiport.c @@ -2527,7 +2527,6 @@ ScsiPortDispatchScsi(IN PDEVICE_OBJECT DeviceObject, { /* Get next logical unit request */ SpiGetNextRequestFromLun(DeviceExtension, LunExtension); - KeReleaseSpinLock(&DeviceExtension->SpinLock, Irql); /* SpiGetNextRequestFromLun() releases the spinlock */ KeLowerIrql(Irql); @@ -4167,7 +4166,6 @@ SpiProcessCompletedRequest(IN PSCSI_PORT_DEVICE_EXTENSION DeviceExtension, { /* Start the next packet */ SpiGetNextRequestFromLun(DeviceExtension, LunExtension); - KeReleaseSpinLockFromDpcLevel(&DeviceExtension->SpinLock); } else { @@ -4175,7 +4173,7 @@ SpiProcessCompletedRequest(IN PSCSI_PORT_DEVICE_EXTENSION DeviceExtension, 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 @@ Error: && (Srb->SrbFlags & SRB_FLAGS_NO_QUEUE_FREEZE)) { if (LunExtension->RequestTimeout == -1) - { SpiGetNextRequestFromLun(DeviceExtension, LunExtension); - KeReleaseSpinLockFromDpcLevel(&DeviceExtension->SpinLock); - } else KeReleaseSpinLockFromDpcLevel(&DeviceExtension->SpinLock); }