From: Sean Hefty Date: Tue, 27 Jul 2010 00:04:10 +0000 (-0700) Subject: refresh (create temporary patch) X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=6ad16812b7a4c3d9291260dfbf1d2b8944225b7b;p=~shefty%2Frdma-win.git refresh (create temporary patch) --- diff --git a/meta b/meta index a113760c..eb3d574a 100644 --- a/meta +++ b/meta @@ -1,6 +1,6 @@ Version: 1 -Previous: 9eea322d28b15b4632b2b84f8facec73883c5d45 -Head: 649cfaff80d506c1efbfedef2cb7b7333973f803 +Previous: 10b107fa4e330f0ca4308e896626a6e11ecb01ff +Head: bfb6d6dd363eaf8687a634c71960015ebae7948e Applied: nd-heap: 4073d4bd9835679d69e79783b4fd841e173ec458 wv-reg: 2c86a99e122511e0ef8723c8ec08456f4002a39a @@ -10,6 +10,7 @@ Applied: nd-adapt: 89c3aaa5d3df57c2dcc7cbb7042ff6ba2e771925 sge: 84588550c84d1c3edae7eabcc0caad91e3b4c720 mr: 649cfaff80d506c1efbfedef2cb7b7333973f803 + refresh-temp: bfb6d6dd363eaf8687a634c71960015ebae7948e Unapplied: wv-rm-ioctl: 2c4f8b27f89993bc9c1215e8c358046b2934f755 wv-ver: 9abd550558317c525e7f7f82caae75f1a810d2b7 diff --git a/patches/refresh-temp b/patches/refresh-temp new file mode 100644 index 00000000..925cb064 --- /dev/null +++ b/patches/refresh-temp @@ -0,0 +1,79 @@ +Bottom: 2a412a568f760567b55f58104171fa455e3a744d +Top: f2a810b29c584db9f46a634adfa70c2f0dc2876e +Author: Sean Hefty +Date: 2010-07-26 17:04:08 -0700 + +Refresh of mr + +--- + +diff --git a/trunk/ulp/netdirect2/user/nd_mw.cpp b/trunk/ulp/netdirect2/user/nd_mw.cpp +index 53006f5..f6a85bf 100644 +--- a/trunk/ulp/netdirect2/user/nd_mw.cpp ++++ b/trunk/ulp/netdirect2/user/nd_mw.cpp +@@ -35,6 +35,7 @@ CNDMemoryRegion::CNDMemoryRegion(CNDAdapter *pAdapter) + pAdapter->AddRef(); + m_pAdapter = pAdapter; + RtlZeroMemory(&m_Keys, sizeof(m_Keys)); ++ m_pOverlapped = NULL; + } + + CNDMemoryRegion::~CNDMemoryRegion() +@@ -70,10 +71,11 @@ Release(void) + STDMETHODIMP CNDMemoryRegion:: + CancelOverlappedRequests(void) + { +- HRESULT hr; ++ if (m_pOverlapped != NULL) { ++ CancelIoEx(m_pAdapter->GetFileHandle(), m_pOverlapped); ++ } + +- hr = m_pWvCq->CancelOverlappedRequests(); +- return NDConvertWVStatus(hr); ++ return ND_SUCCESS; + } + + STDMETHODIMP CNDMemoryRegion:: +@@ -82,8 +84,13 @@ GetOverlappedResult(OVERLAPPED *pOverlapped, BOOL bWait) + DWORD bytes; + HRESULT hr; + +- hr = m_pWvCq->GetOverlappedResult(pOverlapped, &bytes, bWait); +- return NDConvertWVStatus(hr); ++ hr = NDConvertWVStatus(m_pAdapter->m_pWvPd-> ++ GetOverlappedResult(pOverlapped, &bytes, bWait)); ++ if (hr != ND_PENDING) { ++ m_pOverlapped = NULL; ++ } ++ ++ return hr; + } + + DWORD ConvertAccessFlags(DWORD Flags) +@@ -105,6 +112,7 @@ Register(const VOID* pBuffer, SIZE_T cbBuffer, DWORD flags, OVERLAPPED* pOverlap + { + HRESULT hr; + ++ m_pOverlapped = pOverlapped; + hr = m_pAdapter->m_pWvPd->RegisterMemory(pBuffer, cbBuffer, ConvertAccessFlags(flags), + pOverlapped, &m_Keys); + return NDConvertWVStatus(hr); +@@ -115,7 +123,7 @@ Deregister(OVERLAPPED* pOverlapped) + { + HRESULT hr; + +- //??? if the lkey is not unique, we need to change this ++ m_pOverlapped = pOverlapped; + hr = m_pAdapter->m_pWvPd->DeregisterMemory(m_Keys.Lkey, pOverlapped); + return NDConvertWVStatus(hr); + } +diff --git a/trunk/ulp/netdirect2/user/nd_mw.h b/trunk/ulp/netdirect2/user/nd_mw.h +index f4b9fb3..eb0bbc9 100644 +--- a/trunk/ulp/netdirect2/user/nd_mw.h ++++ b/trunk/ulp/netdirect2/user/nd_mw.h +@@ -83,6 +83,7 @@ public: + + protected: + CNDAdapter *m_pAdapter; ++ OVERLAPPED *m_pOverlapped; + };