[IBAL] Refine UAL_NDI_NOOP handler.
authorleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Sun, 13 Jul 2008 11:24:55 +0000 (11:24 +0000)
committerleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Sun, 13 Jul 2008 11:24:55 +0000 (11:24 +0000)
The UAL_NDI_NOOP IOCTL handler was added to allow memory registration in user-mode to notify a client using an I/O completion port.  This patch extends the functionality to allow the IOCTL to return either STATUS_SUCCESS or STATUS_TIMEOUT.  The STATUS_TIMEOUT facility is used by the NetworkDirect provider when IBAT returns pending.  It's crude, but gets the job done.

Signed-off-by: Fab Tillier <ftillier@microsoft.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@1391 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

core/al/kernel/al_proxy_ndi.c

index 382e829..9cf8444 100644 (file)
@@ -614,7 +614,10 @@ ndi_ioctl(
                cl_status = __ndi_dreq_cm( p_context, h_ioctl, p_ret_bytes );\r
                break;\r
     case UAL_NDI_NOOP:\r
-        cl_status = CL_SUCCESS;\r
+        if( cl_ioctl_in_size( h_ioctl ) != 0 )\r
+            cl_status = STATUS_TIMEOUT;\r
+        else\r
+            cl_status = CL_SUCCESS;\r
         break;\r
        default:\r
                cl_status = CL_INVALID_PARAMETER;\r