]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
winverbs branch: sync with commits in trunk
authorshefty <shefty@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Fri, 28 Aug 2009 19:19:42 +0000 (19:19 +0000)
committershefty <shefty@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Fri, 28 Aug 2009 19:19:42 +0000 (19:19 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1@2388 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

branches/winverbs/core/winmad/kernel/wm_driver.c
branches/winverbs/core/winmad/kernel/wm_reg.c
branches/winverbs/core/winverbs/kernel/wv_cq.c
branches/winverbs/core/winverbs/kernel/wv_device.c
branches/winverbs/core/winverbs/kernel/wv_pd.c
branches/winverbs/core/winverbs/kernel/wv_provider.c
branches/winverbs/core/winverbs/kernel/wv_srq.c
branches/winverbs/etc/kernel/work_queue.c
branches/winverbs/ulp/dapl2/dapl/openib_cma/cm.c
branches/winverbs/ulp/libibverbs/src/ibv_main.cpp
branches/winverbs/ulp/librdmacm/src/cma_main.cpp

index b5b79e589295cb7eba6ff97dc85c55e51bca2026..6d3cbdff49ac22fb5f29110d66c1b66d595ec51d 100644 (file)
@@ -247,7 +247,7 @@ static ib_ca_attr_t *WmQueryCaAttributes(WM_IB_DEVICE *pDevice)
        ib_status = pDevice->VerbsInterface.Verbs.\r
                                query_ca(pDevice->VerbsInterface.Verbs.p_hca_obj, attr, &size, NULL);\r
        if (ib_status != IB_SUCCESS) {\r
-               ExFreePool(attr);\r
+               ExFreePoolWithTag(attr, 'acmw');\r
                attr = NULL;\r
        }\r
 \r
@@ -282,7 +282,7 @@ static NTSTATUS WmAddCa(WM_IB_DEVICE *pDevice)
 \r
        status = STATUS_SUCCESS;\r
 out:\r
-       ExFreePool(attr);\r
+       ExFreePoolWithTag(attr, 'acmw');\r
        return status;\r
 }\r
 \r
@@ -361,7 +361,7 @@ static NTSTATUS WmPowerD0Exit(WDFDEVICE Device, WDF_POWER_DEVICE_STATE TargetSta
 \r
        pdev->IbInterface.wdm.InterfaceDereference(pdev->IbInterface.wdm.Context);\r
        if (pdev->pPortArray != NULL) {\r
-               ExFreePool(pdev->pPortArray);\r
+               ExFreePoolWithTag(pdev->pPortArray, 'pimw');\r
        }\r
 \r
        if (destroy) {\r
index 59f5055611f9640183076d5464ac48c5546856e8..8ee32e31559ecf36f8ae39e7188863d2624ac62a 100644 (file)
@@ -265,7 +265,7 @@ void WmRegFree(WM_REGISTRATION *pRegistatration)
 {\r
        WmRegRemoveHandler(pRegistatration);\r
        WmProviderPut(pRegistatration->pProvider);\r
-       ExFreePool(pRegistatration);\r
+       ExFreePoolWithTag(pRegistatration, 'grmw');\r
 }\r
 \r
 void WmRegRemoveHandler(WM_REGISTRATION *pRegistration)\r
index 6adcd15a57ceeafda7958a6e0d05c1c5da257588..76e79db55f3acfffaaf85990cda871532f8f4b55 100644 (file)
@@ -128,7 +128,7 @@ err3:
 err2:\r
        WdfObjectDelete(cq->Queue);\r
 err1:\r
-       ExFreePool(cq);\r
+       ExFreePoolWithTag(cq, 'qcvw');\r
        return status;\r
 }\r
 \r
@@ -235,7 +235,7 @@ void WvCqFree(WV_COMPLETION_QUEUE *pCq)
        WdfObjectDelete(pCq->Queue);\r
        WdfObjectDelete(pCq->ErrorQueue);\r
        WvDevicePut(pCq->pDevice);\r
-       ExFreePool(pCq);\r
+       ExFreePoolWithTag(pCq, 'qcvw');\r
 }\r
 \r
 void WvCqResize(WV_PROVIDER *pProvider, WDFREQUEST Request)\r
index 5cc20bd6f1047e9dc9cdfc27f8675a13be1505bc..317501114da39c645d221a786207768c13970a1b 100644 (file)
@@ -187,7 +187,7 @@ static ib_ca_attr_t *WvQueryCaAttributes(WV_DEVICE *pDevice)
        ib_status = pDevice->pVerbs->query_ca(pDevice->pDevice->hDevice, attr,\r
                                                                                  &size, NULL);\r
        if (ib_status != IB_SUCCESS) {\r
-               ExFreePool(attr);\r
+               ExFreePoolWithTag(attr, 'acvw');\r
                attr = NULL;\r
        }\r
 \r
@@ -208,7 +208,7 @@ static NTSTATUS WvDeviceCreatePorts(WV_DEVICE *pDevice)
        }\r
 \r
        pDevice->PortCount = attr->num_ports;\r
-       ExFreePool(attr);\r
+       ExFreePoolWithTag(attr, 'acvw');\r
 \r
        pDevice->pPorts = ExAllocatePoolWithTag(NonPagedPool, sizeof(WV_PORT) *\r
                                                                                        pDevice->PortCount, 'cpvw');\r
@@ -367,6 +367,9 @@ static void WvDeviceFreePorts(WV_DEVICE *pDevice)
                WdfIoQueuePurgeSynchronously(pDevice->pPorts[i].Queue);\r
                WdfObjectDelete(pDevice->pPorts[i].Queue);\r
        }\r
+       if (pDevice->pPorts != NULL) {\r
+               ExFreePoolWithTag(pDevice->pPorts, 'cpvw');\r
+       }\r
 }\r
 \r
 void WvDeviceFree(WV_DEVICE *pDevice)\r
@@ -385,7 +388,7 @@ void WvDeviceFree(WV_DEVICE *pDevice)
 \r
        WvDeviceFreePorts(pDevice);\r
        WvProviderPut(pDevice->pProvider);\r
-       ExFreePool(pDevice);\r
+       ExFreePoolWithTag(pDevice, 'cdvw');\r
 }\r
 \r
 void WvDeviceRemoveHandler(WV_DEVICE *pDevice)\r
@@ -573,7 +576,7 @@ void WvDeviceQuery(WV_PROVIDER *pProvider, WDFREQUEST Request)
 \r
        WvConvertDevAttr(attr, ca_attr);\r
        outlen = sizeof(WV_IO_DEVICE_ATTRIBUTES);\r
-       ExFreePool(ca_attr);\r
+       ExFreePoolWithTag(ca_attr, 'acvw');\r
 \r
 complete:\r
        WdfRequestCompleteWithInformation(Request, status, outlen);\r
@@ -622,7 +625,7 @@ void WvDevicePortQuery(WV_PROVIDER *pProvider, WDFREQUEST Request)
        outlen = sizeof(WV_IO_PORT_ATTRIBUTES);\r
 \r
 free:\r
-       ExFreePool(ca_attr);\r
+       ExFreePoolWithTag(ca_attr, 'acvw');\r
 complete:\r
        WdfRequestCompleteWithInformation(Request, status, outlen);\r
 }\r
@@ -678,7 +681,7 @@ void WvDeviceGidQuery(WV_PROVIDER *pProvider, WDFREQUEST Request)
        }\r
 \r
 free:\r
-       ExFreePool(ca_attr);\r
+       ExFreePoolWithTag(ca_attr, 'acvw');\r
 complete:\r
        WdfRequestCompleteWithInformation(Request, status, outlen);\r
 }\r
@@ -734,7 +737,7 @@ void WvDevicePkeyQuery(WV_PROVIDER *pProvider, WDFREQUEST Request)
        }\r
 \r
 free:\r
-       ExFreePool(ca_attr);\r
+       ExFreePoolWithTag(ca_attr, 'acvw');\r
 complete:\r
        WdfRequestCompleteWithInformation(Request, status, outlen);\r
 }\r
index 304588da201de8ca01a9fe75727b155a967fe812..af9a55096e1a0e8fac4c5e9a1e7442a299f8f5ed 100644 (file)
@@ -74,7 +74,7 @@ static NTSTATUS WvPdAlloc(WV_DEVICE *pDevice, WV_PROTECTION_DOMAIN **ppPd,
        ib_api_status_t                 ib_status;\r
        WV_PROTECTION_DOMAIN    *pd;\r
 \r
-       pd = ExAllocatePoolWithTag(PagedPool, sizeof(WV_PROTECTION_DOMAIN), 'dpvw');\r
+       pd = ExAllocatePoolWithTag(NonPagedPool, sizeof(WV_PROTECTION_DOMAIN), 'dpvw');\r
        if (pd == NULL) {\r
                return STATUS_NO_MEMORY;\r
        }\r
@@ -101,7 +101,7 @@ static NTSTATUS WvPdAlloc(WV_DEVICE *pDevice, WV_PROTECTION_DOMAIN **ppPd,
        return STATUS_SUCCESS;\r
 \r
 err:\r
-       ExFreePool(pd);\r
+       ExFreePoolWithTag(pd, 'dpvw');\r
        return STATUS_UNSUCCESSFUL;\r
 }\r
 \r
@@ -233,7 +233,7 @@ void WvPdFree(WV_PROTECTION_DOMAIN *pPd)
                }\r
 \r
                cl_qmap_remove_item(&pPd->MrMap, &mr->Item);\r
-               ExFreePool(mr);\r
+               ExFreePoolWithTag(mr, 'rmvw');\r
        }\r
 \r
        if (pPd->hVerbsPd != NULL) {\r
@@ -241,7 +241,7 @@ void WvPdFree(WV_PROTECTION_DOMAIN *pPd)
        }\r
 \r
        WvDevicePut(pPd->pDevice);\r
-       ExFreePool(pPd);\r
+       ExFreePoolWithTag(pPd, 'dpvw');\r
 }\r
 \r
 void WvPdRemoveHandler(WV_PROTECTION_DOMAIN *pPd)\r
@@ -342,7 +342,7 @@ void WvMrRegister(WV_PROVIDER *pProvider, WDFREQUEST Request)
        return;\r
 \r
 err3:\r
-       ExFreePool(mr);\r
+       ExFreePoolWithTag(mr, 'rmvw');\r
 err2:\r
        WvPdRelease(pd);\r
 err1:\r
@@ -389,7 +389,7 @@ void WvMrDeregister(WV_PROVIDER *pProvider, WDFREQUEST Request)
                goto release;\r
        }\r
 \r
-       ExFreePool(mr);\r
+       ExFreePoolWithTag(mr, 'rmvw');\r
 release:\r
        WvPdRelease(pd);\r
 complete:\r
@@ -501,7 +501,7 @@ void WvMwFree(WV_MEMORY_WINDOW *pMw)
        }\r
 \r
        WvPdPut(pMw->pPd);\r
-       ExFreePool(pMw);\r
+       ExFreePoolWithTag(pMw, 'wmvw');\r
 }\r
 \r
 static void WvVerbsConvertAv(ib_av_attr_t *pVerbsAv, WV_IO_AV *pAv)\r
@@ -630,5 +630,5 @@ void WvAhFree(WV_ADDRESS_HANDLE *pAh)
        }\r
 \r
        WvPdPut(pAh->pPd);\r
-       ExFreePool(pAh);\r
+       ExFreePoolWithTag(pAh, 'havw');\r
 }\r
index 19053a8f618f0edd5f2d00c4f1c49216a2683e5b..2998afe7f27595ac2e257d6727b1db2a3441bc38 100644 (file)
@@ -102,7 +102,6 @@ void WvProviderCleanup(WV_PROVIDER *pProvider)
                }\r
        }\r
        while ((ep = IndexListRemoveHead(&pProvider->EpIndex)) != NULL) {\r
-               RemoveEntryList(&ep->Entry);\r
                WvEpFree(ep);\r
        }\r
        while ((ah = IndexListRemoveHead(&pProvider->AhIndex)) != NULL) {\r
index b0877abaf06d6df45f71e376e3f89e846d207c96..99f2b4929e23e81c742df8018488d60fb49faf54 100644 (file)
@@ -133,7 +133,7 @@ static NTSTATUS WvSrqAlloc(WV_PROTECTION_DOMAIN *pPd, WV_IO_SRQ_ATTRIBUTES *pAtt
 err2:\r
        WdfObjectDelete(srq->Queue);\r
 err1:\r
-       ExFreePool(srq);\r
+       ExFreePoolWithTag(srq, 'rsvw');\r
        return STATUS_UNSUCCESSFUL;\r
 }\r
 \r
@@ -239,7 +239,7 @@ void WvSrqFree(WV_SHARED_RECEIVE_QUEUE *pSrq)
        WdfIoQueuePurgeSynchronously(pSrq->Queue);\r
        WdfObjectDelete(pSrq->Queue);\r
        WvPdPut(pSrq->pPd);\r
-       ExFreePool(pSrq);\r
+       ExFreePoolWithTag(pSrq, 'rsvw');\r
 }\r
 \r
 void WvSrqModify(WV_PROVIDER *pProvider, WDFREQUEST Request)\r
index 24af0647cf393286702f803e3a061dcb1f153762..f83254a33720a154c2e4e0178ae7389cb99f70bb 100644 (file)
@@ -85,7 +85,7 @@ err:
        while (--i > 0) {\r
                IoFreeWorkItem(pWorkQueue->TaskArray[i].pWorkItem);\r
        }\r
-       ExFreePool(pWorkQueue->TaskArray);\r
+       ExFreePoolWithTag(pWorkQueue->TaskArray, 'ktqw');\r
        return STATUS_INSUFFICIENT_RESOURCES;\r
 }\r
 \r
index 5631fe788c945767b93e0c31188064024bc1a75e..5c1709ac0e06569bc513628f6b4e824ec94d0dac 100644 (file)
@@ -644,11 +644,7 @@ dapls_ib_disconnect(IN DAPL_EP * ep_ptr, IN DAT_CLOSE_FLAGS close_flags)
                return DAT_SUCCESS;\r
 \r
        /* no graceful half-pipe disconnect option */\r
-       ret = rdma_disconnect(conn->cm_id);\r
-       if (ret)\r
-               dapl_dbg_log(DAPL_DBG_TYPE_ERR,\r
-                            " disconnect: ID %p ret 0x%x\n",\r
-                            ep_ptr->cm_handle, ret);\r
+       rdma_disconnect(conn->cm_id);\r
 \r
        /* \r
         * DAT event notification occurs from the callback\r
index 04f4de58c7da6090b67bc7eb1af67c4451aae46d..4b011152b9ba992a80baf0e3fd9ac3c9e2491ddf 100644 (file)
@@ -34,9 +34,18 @@ extern CRITICAL_SECTION lock;
 BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)\r
 {\r
        UNREFERENCED_PARAMETER(hInstance);\r
-       UNREFERENCED_PARAMETER(dwReason);\r
        UNREFERENCED_PARAMETER(lpReserved);\r
 \r
-       InitializeCriticalSection(&lock);\r
+       switch (dwReason) {\r
+       case DLL_PROCESS_ATTACH:\r
+               InitializeCriticalSection(&lock);\r
+               break;\r
+       case DLL_PROCESS_DETACH:\r
+               DeleteCriticalSection(&lock);\r
+               break;\r
+       default:\r
+               break;\r
+       }\r
+\r
        return TRUE;\r
 }\r
index 44519eb428a1cb52de281481ba83cdcc63a155cd..3521018bba6e69705592eee278db03e4d98c67f6 100644 (file)
@@ -35,10 +35,18 @@ CRITICAL_SECTION lock;
 BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)\r
 {\r
        UNREFERENCED_PARAMETER(hInstance);\r
-       UNREFERENCED_PARAMETER(dwReason);\r
        UNREFERENCED_PARAMETER(lpReserved);\r
 \r
-       InitializeCriticalSection(&lock);\r
+       switch (dwReason) {\r
+       case DLL_PROCESS_ATTACH:\r
+               InitializeCriticalSection(&lock);\r
+               break;\r
+       case DLL_PROCESS_DETACH:\r
+               DeleteCriticalSection(&lock);\r
+               break;\r
+       default:\r
+               break;\r
+       }\r
 \r
        return TRUE;\r
 }\r