[ofw] [PATCH] Always mark IRPs pending if returning STATUS_PENDING

Leonid Keller leonid at mellanox.co.il
Wed Jul 9 05:23:33 PDT 2008


Applied in 1359. Thank you. 

> -----Original Message-----
> From: ofw-bounces at lists.openfabrics.org 
> [mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of Fab Tillier
> Sent: Wednesday, July 09, 2008 3:16 AM
> To: ofw at lists.openfabrics.org
> Subject: [ofw] [PATCH] Always mark IRPs pending if returning 
> STATUS_PENDING
> 
> This patch fixes a bug in the ND proxy where an IOCTL handler 
> would return STATUS_PENDING without marking the IRP pending.
> 
> Signed-off-by: Fab Tillier <ftillier at microsoft.com>
> 
> diff -up -r -X trunk\docs\dontdiff.txt -I \$Id: 
> old\core\al\kernel\al_ndi_cm.c trunk\core\al\kernel\al_ndi_cm.c
> --- old\core\al\kernel\al_ndi_cm.c      Tue Jul 08 17:13:45 2008
> +++ trunk\core\al\kernel\al_ndi_cm.c    Tue Jul 08 17:13:00 2008
> @@ -1341,11 +1341,11 @@ ndi_rtu_cm(
>         p_irp->Tail.Overlay.DriverContext[1] = 
> IoAllocateWorkItem( p_io_stack->DeviceObject );
>         ref_al_obj( &h_qp->obj ); /* Take IRP reference. */
> 
> +       IoMarkIrpPending( p_irp );
>         if ( p_irp->Tail.Overlay.DriverContext[1] )
>         { /* asyncronous performing */
>                 /* take a ref to prevent QP destroy before 
> calling work item */
>                 ref_al_obj( &h_qp->obj ); /* Take work item 
> reference. */
> -               IoMarkIrpPending( p_irp );
>                 IoQueueWorkItem( p_irp->Tail.Overlay.DriverContext[1],
>                         __ndi_do_rtu, DelayedWorkQueue, p_irp );
>         }
> 



More information about the ofw mailing list