[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