[IBAL] Driver verifier caught this one. If an IRP is completed via IoCompletRequest...
authorleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Wed, 9 Jul 2008 12:27:24 +0000 (12:27 +0000)
committerleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Wed, 9 Jul 2008 12:27:24 +0000 (12:27 +0000)
Signed-off-by: Fab Tillier <ftillier@microsoft.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@1360 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

core/al/kernel/al_proxy_ndi.c

index ef1ab9a..2e4027d 100644 (file)
@@ -433,6 +433,7 @@ __ndi_rej_cm(
        ib_api_status_t status;\r
        ual_ndi_rej_cm_ioctl_in_t *p_rej = \r
                (ual_ndi_rej_cm_ioctl_in_t*)cl_ioctl_in_buf( h_ioctl );\r
+       NTSTATUS ntstatus;\r
        UNUSED_PARAM(p_ret_bytes);\r
 \r
        AL_ENTER( AL_DBG_NDI );\r
@@ -442,7 +443,7 @@ __ndi_rej_cm(
        /* Check psize */\r
        if ( p_rej->pdata_size >= sizeof(p_rej->pdata) )\r
        {\r
-               h_ioctl->IoStatus.Status = CL_INVALID_PARAMETER;\r
+               ntstatus = CL_INVALID_PARAMETER;\r
                goto exit;\r
        }\r
        \r
@@ -454,20 +455,16 @@ __ndi_rej_cm(
                NULL, 0, p_rej->pdata, p_rej->pdata_size);\r
        if (status != IB_SUCCESS)\r
        {\r
-               h_ioctl->IoStatus.Status = CL_INVALID_HANDLE;\r
+               ntstatus = CL_INVALID_HANDLE;\r
                goto exit;\r
        }\r
 \r
        al_destroy_cep( p_context->h_al, &p_rej->cid, FALSE );\r
-       h_ioctl->IoStatus.Status = STATUS_SUCCESS;\r
+       ntstatus = STATUS_SUCCESS;\r
 \r
 exit:\r
-       /* complete the IRP */\r
-       h_ioctl->IoStatus.Information = 0;\r
-       IoCompleteRequest( h_ioctl, IO_NO_INCREMENT );\r
-\r
        AL_EXIT( AL_DBG_NDI );\r
-       return CL_COMPLETED;\r
+       return ntstatus;\r
 }\r
 \r
 static cl_status_t\r