hi Sorin,
Looks good overall.
I just one one comment about the patch which I’ve inlined.
How did you test this BTW?
> VOID
> @@ -1309,7 +1405,7 @@ OvsTunnelFilterThreadUninit(POVS_TUNFLT_THREAD_CONTEXT
> threadCtx)
> * --------------------------------------------------------------------------
> * This function creates a new tunnel filter request and push it to a thread
> * queue. If the thread stop event is signaled, the request is completed with
> - * STATUS_CANCELLED without pushing it to any queue.
> + * STATUS_REQUEST_ABORTED without pushing it to any queue.
> * --------------------------------------------------------------------------
> */
> NTSTATUS
> @@ -1321,7 +1417,7 @@ OvsTunnelFilterQueueRequest(PIRP irp,
> PVOID tunnelContext)
> {
> POVS_TUNFLT_REQUEST request = NULL;
> - NTSTATUS status = STATUS_PENDING;
> + NTSTATUS status = STATUS_SUCCESS;
> BOOLEAN error = TRUE;
> UINT64 timeout = 0;
>
> @@ -1334,8 +1430,8 @@ OvsTunnelFilterQueueRequest(PIRP irp,
> FALSE,
> (LARGE_INTEGER *)&timeout)) {
> /* The stop event is signaled. Completed the IRP with
> - * STATUS_CANCELLED. */
> - status = STATUS_CANCELLED;
> + * STATUS_REQUEST_ABORTED. */
> + status = STATUS_REQUEST_ABORTED;
> break;
> }
>
> @@ -1366,7 +1462,10 @@ OvsTunnelFilterQueueRequest(PIRP irp,
> request->callback = callback;
> request->context = tunnelContext;
>
> - OvsTunnelFilterThreadPush(request);
> + status = OvsTunnelFilterThreadPush(request);
> + if (!NT_SUCCESS(status)) {
> + break;
> + }
>
> error = FALSE;
> } while (error);
> @@ -1379,13 +1478,14 @@ OvsTunnelFilterQueueRequest(PIRP irp,
> }
> }
>
> - return status;
> + /* Return pending to indicate that the IRP will be completed later. */
> + return STATUS_PENDING;
You are returning STATUS_PENDING at the end of the function. You should be
returning ‘status’.
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev