Author: cgutman
Date: Wed Jan 25 01:46:35 2012
New Revision: 55166

URL: http://svn.reactos.org/svn/reactos?rev=55166&view=rev
Log:
[USBSTOR]
- Fix a bug in SRB queuing

Modified:
    branches/usb-bringup-trunk/drivers/usb/usbstor/queue.c

Modified: branches/usb-bringup-trunk/drivers/usb/usbstor/queue.c
URL: 
http://svn.reactos.org/svn/reactos/branches/usb-bringup-trunk/drivers/usb/usbstor/queue.c?rev=55166&r1=55165&r2=55166&view=diff
==============================================================================
--- branches/usb-bringup-trunk/drivers/usb/usbstor/queue.c [iso-8859-1] 
(original)
+++ branches/usb-bringup-trunk/drivers/usb/usbstor/queue.c [iso-8859-1] Wed Jan 
25 01:46:35 2012
@@ -142,6 +142,8 @@
     PFDO_DEVICE_EXTENSION FDODeviceExtension;
     BOOLEAN IrpListFreeze;
     BOOLEAN SrbProcessing;
+    PIO_STACK_LOCATION IoStack = IoGetCurrentIrpStackLocation(Irp);
+    PSCSI_REQUEST_BLOCK Request = 
(PSCSI_REQUEST_BLOCK)IoStack->Parameters.Others.Argument1;
 
     //
     // get FDO device extension
@@ -201,10 +203,15 @@
     //
     if (SrbProcessing)
     {
+        ASSERT(FDODeviceExtension->ActiveSrb != NULL);
+
         OldDriverCancel = IoSetCancelRoutine(Irp, USBSTOR_Cancel);
     }
     else
     {
+        ASSERT(FDODeviceExtension->ActiveSrb == NULL);
+
+        FDODeviceExtension->ActiveSrb = Request;
         OldDriverCancel = IoSetCancelRoutine(Irp, USBSTOR_CancelIo);
     }
 


Reply via email to