]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
refresh
authorU-AMR\MSHEFTY <MSHEFTY@mshefty-MOBL2.amr.corp.intel.com>
Thu, 7 Jan 2010 00:46:53 +0000 (16:46 -0800)
committerU-AMR\MSHEFTY <MSHEFTY@mshefty-MOBL2.amr.corp.intel.com>
Thu, 7 Jan 2010 00:46:53 +0000 (16:46 -0800)
meta
patches/cm_poll
patches/refresh-temp [deleted file]

diff --git a/meta b/meta
index f7e54a08341173e534f0bd5106fd6c11760b5906..a6ecf4f02ea615db7ea0a8f8a0fc90e6862bfd1d 100644 (file)
--- a/meta
+++ b/meta
@@ -1,11 +1,10 @@
 Version: 1
-Previous: 34253ed66c5fbc3f08ee717f13522a9266e382a8
-Head: 775225917c881c49ee484493c0b27579bf69ce87
+Previous: 481b47b6dad6bde04b5a08d83a8ec78963b43cc8
+Head: 90a6aedbf678173e0a74d6567a87da7ca4af6ba5
 Applied:
   rm-build: d6d2302f2d258fa2c07e55a2e124a9bdd75367a0
   cm_listen_handler: 56372fe5e423b7238a4db99258c1493748c0a582
-  cm_poll: ef232f09cbd9ac35a211764532bcfe8f841df683
-  refresh-temp: 775225917c881c49ee484493c0b27579bf69ce87
+  cm_poll: 90a6aedbf678173e0a74d6567a87da7ca4af6ba5
 Unapplied:
   old-bld-32: bd1bd1d366e3927b7646da33e243213a5d59c235
   old-apphang: 7a6f7ff02c6035e54fc262414eb9484ea98018b9
index 0000c965c01dafe8a43873bb5d155d2b3d31c048..dabb5afacc56759a3f40988236a6a99f07315fb6 100644 (file)
@@ -1,5 +1,5 @@
 Bottom: fa748f1c52b43305bedd9af43719f0863bbecab5
-Top:    387b7f5f1602203485c10762ab1e083ed5ad08f6
+Top:    320329bcea61ab9c1c6da4cb408e769a18685487
 Author: U-AMR\MSHEFTY <MSHEFTY@mshefty-MOBL2.amr.corp.intel.com>
 Date:   2010-01-06 10:08:50 -0800
 
@@ -101,10 +101,10 @@ index 177bb9e..d22901f 100644
        p_ifc->send_rep = cm_send_rep;\r
        p_ifc->send_rtu = cm_send_rtu;\r
 diff --git a/trunk/core/winverbs/kernel/wv_ep.c b/trunk/core/winverbs/kernel/wv_ep.c
-index 3d5c6ce..874f3d1 100644
+index 3d5c6ce..3a9e02f 100644
 --- a/trunk/core/winverbs/kernel/wv_ep.c
 +++ b/trunk/core/winverbs/kernel/wv_ep.c
-@@ -1110,28 +1110,34 @@ complete:
+@@ -1110,60 +1110,124 @@ complete:
        WdfRequestComplete(Request, status);\r
  }\r
  \r
@@ -121,39 +121,82 @@ index 3d5c6ce..874f3d1 100644
  \r
 -      listen = ((iba_cm_id *) pId->context)->context;\r
 +      WdfObjectAcquireLock(pListen->Queue);\r
-+      status = WdfIoQueueRetrieveNextRequest(pListen->Queue, &request);\r
-+      if (!NT_SUCCESS(status)) {\r
-+              goto release;\r
-+      }\r
++      while (1) {\r
++              status = WdfIoQueueRetrieveNextRequest(pListen->Queue, &request);\r
++              if (!NT_SUCCESS(status)) {\r
++                      break;\r
++              }\r
  \r
 -      WdfObjectAcquireLock(listen->Queue);\r
 -      status = WdfIoQueueRetrieveNextRequest(listen->Queue, &request);\r
-+      status = IbCmInterface.CM.get_request(pListen->pIbCmId, &id, &event);\r
-       if (!NT_SUCCESS(status)) {\r
-+              WdfRequestRequeue(request);\r
-               goto release;\r
-       }\r
+-      if (!NT_SUCCESS(status)) {\r
+-              goto release;\r
+-      }\r
++              status = IbCmInterface.CM.get_request(pListen->pIbCmId, &id, &event);\r
++              if (!NT_SUCCESS(status)) {\r
++                      WdfRequestRequeue(request);\r
++                      break;\r
++              }\r
++\r
++              ASSERT(!IsListEmpty(&pListen->Entry));\r
++              ep = CONTAINING_RECORD(RemoveHeadList(&pListen->Entry), WV_ENDPOINT, Entry);\r
++              ep->pIbCmId = id;\r
++              id->callback = WvEpIbCmHandler;\r
++              id->context = ep;\r
++\r
++              hdr = event.data.req.req.p_pdata;\r
++              if ((hdr->IpVersion >> 4) == 4) {\r
++                      ep->Attributes.LocalAddress.SockAddr.In.SinFamily = WV_AF_INET;\r
++                      ep->Attributes.LocalAddress.SockAddr.In.SinAddr = hdr->DstAddress.Ip4.Address;\r
++                      ep->Attributes.PeerAddress.SockAddr.In.SinFamily = WV_AF_INET;\r
++                      ep->Attributes.PeerAddress.SockAddr.In.SinAddr = hdr->SrcAddress.Ip4.Address;\r
++              } else {\r
++                      ep->Attributes.LocalAddress.SockAddr.In6.Sin6Family = WV_AF_INET6; \r
++                      RtlCopyMemory(ep->Attributes.LocalAddress.SockAddr.In6.Sin6Addr,\r
++                                                hdr->DstAddress.Ip6Address, 16);\r
++                      ep->Attributes.PeerAddress.SockAddr.In6.Sin6Family = WV_AF_INET6;\r
++                      RtlCopyMemory(ep->Attributes.PeerAddress.SockAddr.In6.Sin6Addr,\r
++                                                hdr->SrcAddress.Ip6Address, 16);\r
++              }\r
++              ep->Attributes.Device.DeviceGuid = event.data.req.local_ca_guid;\r
++              ep->Attributes.Device.Pkey = event.data.req.req.p_primary_path->pkey;\r
++              ep->Attributes.Device.PortNumber = event.data.req.port_num;\r
++              ep->Attributes.Param.Connect.ResponderResources = event.data.req.req.resp_res;\r
++              ep->Attributes.Param.Connect.InitiatorDepth = event.data.req.req.init_depth;\r
++              ep->Attributes.Param.Connect.RetryCount = event.data.req.req.retry_cnt;\r
++              ep->Attributes.Param.Connect.RnrRetryCount = event.data.req.req.rnr_retry_cnt;\r
++              ep->Attributes.Param.Connect.DataLength = sizeof(ep->Attributes.Param.Connect.Data);\r
++              RtlCopyMemory(ep->Attributes.Param.Connect.Data, hdr + 1,\r
++                                        sizeof(ep->Attributes.Param.Connect.Data));\r
++              ep->Route = *event.data.req.req.p_primary_path;\r
++\r
++              ep->State = WvEpPassiveConnect;\r
++              WvEpPut(ep);\r
  \r
 -      ASSERT(!IsListEmpty(&listen->Entry));\r
 -      ep = CONTAINING_RECORD(RemoveHeadList(&listen->Entry), WV_ENDPOINT, Entry);\r
 -      ep->pIbCmId = pId;\r
 -      pId->callback = WvEpIbCmHandler;\r
 -      pId->context = ep;\r
-+      ASSERT(!IsListEmpty(&pListen->Entry));\r
-+      ep = CONTAINING_RECORD(RemoveHeadList(&pListen->Entry), WV_ENDPOINT, Entry);\r
-+      ep->pIbCmId = id;\r
-+      id->callback = WvEpIbCmHandler;\r
-+      id->context = ep;\r
++              WdfRequestComplete(request, STATUS_SUCCESS);\r
++      }\r
++      WdfObjectReleaseLock(pListen->Queue);\r
++}\r
  \r
 -      hdr = pEvent->data.req.req.p_pdata;\r
-+      hdr = event.data.req.req.p_pdata;\r
-       if ((hdr->IpVersion >> 4) == 4) {\r
-               ep->Attributes.LocalAddress.SockAddr.In.SinFamily = WV_AF_INET;\r
-               ep->Attributes.LocalAddress.SockAddr.In.SinAddr = hdr->DstAddress.Ip4.Address;\r
-@@ -1145,25 +1151,82 @@ static NTSTATUS WvEpIbListenHandler(iba_cm_id *pId, iba_cm_event *pEvent)
-               RtlCopyMemory(ep->Attributes.PeerAddress.SockAddr.In6.Sin6Addr,\r
-                                         hdr->SrcAddress.Ip6Address, 16);\r
-       }\r
+-      if ((hdr->IpVersion >> 4) == 4) {\r
+-              ep->Attributes.LocalAddress.SockAddr.In.SinFamily = WV_AF_INET;\r
+-              ep->Attributes.LocalAddress.SockAddr.In.SinAddr = hdr->DstAddress.Ip4.Address;\r
+-              ep->Attributes.PeerAddress.SockAddr.In.SinFamily = WV_AF_INET;\r
+-              ep->Attributes.PeerAddress.SockAddr.In.SinAddr = hdr->SrcAddress.Ip4.Address;\r
+-      } else {\r
+-              ep->Attributes.LocalAddress.SockAddr.In6.Sin6Family = WV_AF_INET6; \r
+-              RtlCopyMemory(ep->Attributes.LocalAddress.SockAddr.In6.Sin6Addr,\r
+-                                        hdr->DstAddress.Ip6Address, 16);\r
+-              ep->Attributes.PeerAddress.SockAddr.In6.Sin6Family = WV_AF_INET6;\r
+-              RtlCopyMemory(ep->Attributes.PeerAddress.SockAddr.In6.Sin6Addr,\r
+-                                        hdr->SrcAddress.Ip6Address, 16);\r
+-      }\r
 -      ep->Attributes.Device.DeviceGuid = pEvent->data.req.local_ca_guid;\r
 -      ep->Attributes.Device.Pkey = pEvent->data.req.req.p_primary_path->pkey;\r
 -      ep->Attributes.Device.PortNumber = pEvent->data.req.port_num;\r
@@ -161,29 +204,18 @@ index 3d5c6ce..874f3d1 100644
 -      ep->Attributes.Param.Connect.InitiatorDepth = pEvent->data.req.req.init_depth;\r
 -      ep->Attributes.Param.Connect.RetryCount = pEvent->data.req.req.retry_cnt;\r
 -      ep->Attributes.Param.Connect.RnrRetryCount = pEvent->data.req.req.rnr_retry_cnt;\r
-+      ep->Attributes.Device.DeviceGuid = event.data.req.local_ca_guid;\r
-+      ep->Attributes.Device.Pkey = event.data.req.req.p_primary_path->pkey;\r
-+      ep->Attributes.Device.PortNumber = event.data.req.port_num;\r
-+      ep->Attributes.Param.Connect.ResponderResources = event.data.req.req.resp_res;\r
-+      ep->Attributes.Param.Connect.InitiatorDepth = event.data.req.req.init_depth;\r
-+      ep->Attributes.Param.Connect.RetryCount = event.data.req.req.retry_cnt;\r
-+      ep->Attributes.Param.Connect.RnrRetryCount = event.data.req.req.rnr_retry_cnt;\r
-       ep->Attributes.Param.Connect.DataLength = sizeof(ep->Attributes.Param.Connect.Data);\r
-       RtlCopyMemory(ep->Attributes.Param.Connect.Data, hdr + 1,\r
-                                 sizeof(ep->Attributes.Param.Connect.Data));\r
+-      ep->Attributes.Param.Connect.DataLength = sizeof(ep->Attributes.Param.Connect.Data);\r
+-      RtlCopyMemory(ep->Attributes.Param.Connect.Data, hdr + 1,\r
+-                                sizeof(ep->Attributes.Param.Connect.Data));\r
 -      ep->Route = *pEvent->data.req.req.p_primary_path;\r
-+      ep->Route = *event.data.req.req.p_primary_path;\r
\r
-       ep->State = WvEpPassiveConnect;\r
-       WvEpPut(ep);\r
\r
-       WdfRequestComplete(request, STATUS_SUCCESS);\r
- release:\r
+-\r
+-      ep->State = WvEpPassiveConnect;\r
+-      WvEpPut(ep);\r
+-\r
+-      WdfRequestComplete(request, STATUS_SUCCESS);\r
+-release:\r
 -      WdfObjectReleaseLock(listen->Queue);\r
 -      return status;\r
-+      WdfObjectReleaseLock(pListen->Queue);\r
-+}\r
-+\r
 +static NTSTATUS WvEpIbListenHandler(iba_cm_id *pId, iba_cm_event *pEvent)\r
 +{\r
 +      WV_ENDPOINT             *listen;\r
@@ -243,7 +275,7 @@ index 3d5c6ce..874f3d1 100644
  }\r
  \r
  void WvEpListen(WV_PROVIDER *pProvider, WDFREQUEST Request)\r
-@@ -1235,24 +1298,24 @@ void WvEpGetRequest(WV_PROVIDER *pProvider, WDFREQUEST Request)
+@@ -1235,24 +1299,24 @@ void WvEpGetRequest(WV_PROVIDER *pProvider, WDFREQUEST Request)
        status = WdfRequestRetrieveInputBuffer(Request, sizeof(WV_IO_EP_GET_REQUEST),\r
                                                                                   &req, NULL);\r
        if (!NT_SUCCESS(status)) {\r
@@ -272,7 +304,7 @@ index 3d5c6ce..874f3d1 100644
        }\r
  \r
        WdfObjectAcquireLock(ep->Queue);\r
-@@ -1262,9 +1325,8 @@ void WvEpGetRequest(WV_PROVIDER *pProvider, WDFREQUEST Request)
+@@ -1262,9 +1326,8 @@ void WvEpGetRequest(WV_PROVIDER *pProvider, WDFREQUEST Request)
                status = STATUS_CONNECTION_IN_USE;\r
        }\r
        WdfObjectReleaseLock(ep->Queue);\r
@@ -283,7 +315,7 @@ index 3d5c6ce..874f3d1 100644
        }\r
  \r
        WdfObjectAcquireLock(listen->Queue);\r
-@@ -1274,15 +1336,21 @@ void WvEpGetRequest(WV_PROVIDER *pProvider, WDFREQUEST Request)
+@@ -1274,15 +1337,21 @@ void WvEpGetRequest(WV_PROVIDER *pProvider, WDFREQUEST Request)
                WvEpGet(ep);\r
        }\r
        WdfObjectReleaseLock(listen->Queue);\r
diff --git a/patches/refresh-temp b/patches/refresh-temp
deleted file mode 100644 (file)
index cd6a417..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-Bottom: 387b7f5f1602203485c10762ab1e083ed5ad08f6
-Top:    320329bcea61ab9c1c6da4cb408e769a18685487
-Author: U-AMR\MSHEFTY <MSHEFTY@mshefty-MOBL2.amr.corp.intel.com>
-Date:   2010-01-06 16:46:46 -0800
-
-Refresh of cm_poll
-
----
-
-diff --git a/trunk/core/winverbs/kernel/wv_ep.c b/trunk/core/winverbs/kernel/wv_ep.c
-index 874f3d1..3a9e02f 100644
---- a/trunk/core/winverbs/kernel/wv_ep.c
-+++ b/trunk/core/winverbs/kernel/wv_ep.c
-@@ -1120,54 +1120,55 @@ static void WvEpGetIbRequest(WV_ENDPOINT *pListen)
-       iba_cm_event    event;\r
\r
-       WdfObjectAcquireLock(pListen->Queue);\r
--      status = WdfIoQueueRetrieveNextRequest(pListen->Queue, &request);\r
--      if (!NT_SUCCESS(status)) {\r
--              goto release;\r
--      }\r
-+      while (1) {\r
-+              status = WdfIoQueueRetrieveNextRequest(pListen->Queue, &request);\r
-+              if (!NT_SUCCESS(status)) {\r
-+                      break;\r
-+              }\r
\r
--      status = IbCmInterface.CM.get_request(pListen->pIbCmId, &id, &event);\r
--      if (!NT_SUCCESS(status)) {\r
--              WdfRequestRequeue(request);\r
--              goto release;\r
--      }\r
-+              status = IbCmInterface.CM.get_request(pListen->pIbCmId, &id, &event);\r
-+              if (!NT_SUCCESS(status)) {\r
-+                      WdfRequestRequeue(request);\r
-+                      break;\r
-+              }\r
\r
--      ASSERT(!IsListEmpty(&pListen->Entry));\r
--      ep = CONTAINING_RECORD(RemoveHeadList(&pListen->Entry), WV_ENDPOINT, Entry);\r
--      ep->pIbCmId = id;\r
--      id->callback = WvEpIbCmHandler;\r
--      id->context = ep;\r
-+              ASSERT(!IsListEmpty(&pListen->Entry));\r
-+              ep = CONTAINING_RECORD(RemoveHeadList(&pListen->Entry), WV_ENDPOINT, Entry);\r
-+              ep->pIbCmId = id;\r
-+              id->callback = WvEpIbCmHandler;\r
-+              id->context = ep;\r
-+\r
-+              hdr = event.data.req.req.p_pdata;\r
-+              if ((hdr->IpVersion >> 4) == 4) {\r
-+                      ep->Attributes.LocalAddress.SockAddr.In.SinFamily = WV_AF_INET;\r
-+                      ep->Attributes.LocalAddress.SockAddr.In.SinAddr = hdr->DstAddress.Ip4.Address;\r
-+                      ep->Attributes.PeerAddress.SockAddr.In.SinFamily = WV_AF_INET;\r
-+                      ep->Attributes.PeerAddress.SockAddr.In.SinAddr = hdr->SrcAddress.Ip4.Address;\r
-+              } else {\r
-+                      ep->Attributes.LocalAddress.SockAddr.In6.Sin6Family = WV_AF_INET6; \r
-+                      RtlCopyMemory(ep->Attributes.LocalAddress.SockAddr.In6.Sin6Addr,\r
-+                                                hdr->DstAddress.Ip6Address, 16);\r
-+                      ep->Attributes.PeerAddress.SockAddr.In6.Sin6Family = WV_AF_INET6;\r
-+                      RtlCopyMemory(ep->Attributes.PeerAddress.SockAddr.In6.Sin6Addr,\r
-+                                                hdr->SrcAddress.Ip6Address, 16);\r
-+              }\r
-+              ep->Attributes.Device.DeviceGuid = event.data.req.local_ca_guid;\r
-+              ep->Attributes.Device.Pkey = event.data.req.req.p_primary_path->pkey;\r
-+              ep->Attributes.Device.PortNumber = event.data.req.port_num;\r
-+              ep->Attributes.Param.Connect.ResponderResources = event.data.req.req.resp_res;\r
-+              ep->Attributes.Param.Connect.InitiatorDepth = event.data.req.req.init_depth;\r
-+              ep->Attributes.Param.Connect.RetryCount = event.data.req.req.retry_cnt;\r
-+              ep->Attributes.Param.Connect.RnrRetryCount = event.data.req.req.rnr_retry_cnt;\r
-+              ep->Attributes.Param.Connect.DataLength = sizeof(ep->Attributes.Param.Connect.Data);\r
-+              RtlCopyMemory(ep->Attributes.Param.Connect.Data, hdr + 1,\r
-+                                        sizeof(ep->Attributes.Param.Connect.Data));\r
-+              ep->Route = *event.data.req.req.p_primary_path;\r
-+\r
-+              ep->State = WvEpPassiveConnect;\r
-+              WvEpPut(ep);\r
\r
--      hdr = event.data.req.req.p_pdata;\r
--      if ((hdr->IpVersion >> 4) == 4) {\r
--              ep->Attributes.LocalAddress.SockAddr.In.SinFamily = WV_AF_INET;\r
--              ep->Attributes.LocalAddress.SockAddr.In.SinAddr = hdr->DstAddress.Ip4.Address;\r
--              ep->Attributes.PeerAddress.SockAddr.In.SinFamily = WV_AF_INET;\r
--              ep->Attributes.PeerAddress.SockAddr.In.SinAddr = hdr->SrcAddress.Ip4.Address;\r
--      } else {\r
--              ep->Attributes.LocalAddress.SockAddr.In6.Sin6Family = WV_AF_INET6; \r
--              RtlCopyMemory(ep->Attributes.LocalAddress.SockAddr.In6.Sin6Addr,\r
--                                        hdr->DstAddress.Ip6Address, 16);\r
--              ep->Attributes.PeerAddress.SockAddr.In6.Sin6Family = WV_AF_INET6;\r
--              RtlCopyMemory(ep->Attributes.PeerAddress.SockAddr.In6.Sin6Addr,\r
--                                        hdr->SrcAddress.Ip6Address, 16);\r
--      }\r
--      ep->Attributes.Device.DeviceGuid = event.data.req.local_ca_guid;\r
--      ep->Attributes.Device.Pkey = event.data.req.req.p_primary_path->pkey;\r
--      ep->Attributes.Device.PortNumber = event.data.req.port_num;\r
--      ep->Attributes.Param.Connect.ResponderResources = event.data.req.req.resp_res;\r
--      ep->Attributes.Param.Connect.InitiatorDepth = event.data.req.req.init_depth;\r
--      ep->Attributes.Param.Connect.RetryCount = event.data.req.req.retry_cnt;\r
--      ep->Attributes.Param.Connect.RnrRetryCount = event.data.req.req.rnr_retry_cnt;\r
--      ep->Attributes.Param.Connect.DataLength = sizeof(ep->Attributes.Param.Connect.Data);\r
--      RtlCopyMemory(ep->Attributes.Param.Connect.Data, hdr + 1,\r
--                                sizeof(ep->Attributes.Param.Connect.Data));\r
--      ep->Route = *event.data.req.req.p_primary_path;\r
--\r
--      ep->State = WvEpPassiveConnect;\r
--      WvEpPut(ep);\r
--\r
--      WdfRequestComplete(request, STATUS_SUCCESS);\r
--release:\r
-+              WdfRequestComplete(request, STATUS_SUCCESS);\r
-+      }\r
-       WdfObjectReleaseLock(pListen->Queue);\r
- }