/*\r
- * Copyright (c) 2008 Intel Corporation. All rights reserved.\r
+ * Copyright (c) 2008-2010 Intel Corporation. All rights reserved.\r
*\r
* This software is available to you under the OpenIB.org BSD license\r
* below:\r
void WmSendHandler(ib_mad_svc_handle_t hService, void *Context,\r
ib_mad_element_t *pMad)\r
{\r
- if (pMad->status == IB_SUCCESS) {\r
+ if (pMad->status == IB_WCS_SUCCESS) {\r
((WM_REGISTRATION *) Context)->pDevice->IbInterface.put_mad(pMad);\r
} else {\r
+ pMad->status = WM_IO_TIMEOUT;\r
WmReceiveHandler(hService, Context, pMad);\r
}\r
}\r
void WmProviderCancel(WM_PROVIDER *pProvider, WDFREQUEST Request)\r
{\r
WDFREQUEST request;\r
- NTSTATUS status;\r
+ NTSTATUS status, result;\r
\r
WdfObjectAcquireLock(pProvider->ReadQueue);\r
status = WdfIoQueueRetrieveNextRequest(pProvider->ReadQueue, &request);\r
+ result = status;\r
\r
while (NT_SUCCESS(status)) {\r
WdfRequestComplete(request, STATUS_CANCELLED);\r
}\r
WdfObjectReleaseLock(pProvider->ReadQueue);\r
\r
- WdfRequestComplete(Request, status);\r
+ WdfRequestComplete(Request, result);\r
}\r
__declspec(dllexport)\r
void *umad_alloc(int num, size_t size)\r
{\r
- return new uint8_t[num * size];\r
+ return calloc(num, size);\r
}\r
\r
__declspec(dllexport)\r
void umad_free(void *umad)\r
{\r
- delete umad;\r
+ free(umad);\r
}\r
\r
__declspec(dllexport)\r