--- /dev/null
+Bottom: 5be2fd81c9cb0011b245f6751d8bf811d0886a5f
+Top: c8717016363ea4510580f4eaf9918392bc8975a7
+Author: Sean Hefty <sean.hefty@intel.com>
+Date: 2010-02-17 14:55:53 -0800
+
+Refresh of retry-ibat
+
+---
+
+diff --git a/trunk/core/ibat/user/ibat.cpp b/trunk/core/ibat/user/ibat.cpp
+index ede0a5e..f3c4289 100644
+--- a/trunk/core/ibat/user/ibat.cpp
++++ b/trunk/core/ibat/user/ibat.cpp
+@@ -366,18 +366,20 @@ ResolvePath(
+ __in const struct sockaddr* pSrcAddr,\r
+ __in const struct sockaddr* pDestAddr,\r
+ __out IBAT_PATH_BLOB* pPath,\r
+- __in int Timeout)\r
++ __in DWORD Timeout)\r
+ {\r
++ INT64 to;\r
+ HRESULT hr;\r
+ \r
++ to = (Timeout == INFINITE) ? 1 << 63 : (INT64) ((UINT64) Timeout);\r
+ do {\r
+ hr = Resolve(pSrcAddr, pDestAddr, pPath);\r
+- if( hr != E_PENDING || Timeout <= 0 )\r
++ if( hr != E_PENDING || to <= 0 )\r
+ break;\r
+ \r
+- Timeout -= 10;\r
++ to -= 10;\r
+ Sleep(10);\r
+- } while( Timeout > 0 );\r
++ } while( to > 0 );\r
+ \r
+ return hr;\r
+ }\r
+@@ -402,7 +404,7 @@ IbatResolvePath(
+ __in const struct sockaddr* pSrcAddr,\r
+ __in const struct sockaddr* pDestAddr,\r
+ __out IBAT_PATH_BLOB* pPath,\r
+- __in const int Timeout)\r
++ __in DWORD Timeout)\r
+ {\r
+ return IBAT::ResolvePath(pSrcAddr, pDestAddr, pPath, Timeout);\r
+ }\r
+diff --git a/trunk/inc/user/iba/ibat.h b/trunk/inc/user/iba/ibat.h
+index e7f2c06..6e84486 100644
+--- a/trunk/inc/user/iba/ibat.h
++++ b/trunk/inc/user/iba/ibat.h
+@@ -41,8 +41,6 @@ typedef struct _IBAT_PATH_BLOB
+ \r
+ } IBAT_PATH_BLOB;\r
+ \r
+-#define IBAT_MAX_TIMEOUT 0x0FFFFFFF\r
+-\r
+ #ifdef __cplusplus\r
+ namespace IBAT\r
+ {\r
+@@ -59,7 +57,7 @@ ResolvePath(
+ __in const struct sockaddr* pSrcAddr,\r
+ __in const struct sockaddr* pDestAddr,\r
+ __out IBAT_PATH_BLOB* pPath,\r
+- __in int Timeout /* ms */\r
++ __in DWORD Timeout /* ms */\r
+ );\r
+ \r
+ }\r
+@@ -77,9 +75,9 @@ IbatResolvePath(
+ __in const struct sockaddr* pSrcAddr,\r
+ __in const struct sockaddr* pDestAddr,\r
+ __out IBAT_PATH_BLOB* pPath,\r
+- __in int Timeout /* ms */\r
++ __in DWORD Timeout /* ms */\r
+ );\r
+ \r
+ #endif /* __cplusplus */\r
+ \r
+-#endif // _IBAT_H_
+\ No newline at end of file
++#endif // _IBAT_H_\r
+diff --git a/trunk/ulp/netdirect/user/nd_connect.cpp b/trunk/ulp/netdirect/user/nd_connect.cpp
+index 6ee6fa0..81d5f7b 100644
+--- a/trunk/ulp/netdirect/user/nd_connect.cpp
++++ b/trunk/ulp/netdirect/user/nd_connect.cpp
+@@ -139,7 +139,7 @@ Connect(INDEndpoint* pEndpoint,
+ addr.Sin6.sin6_port = LocalPort;\r
+ }\r
+ \r
+- hr = IBAT::ResolvePath(&addr.Sa, pAddress, &path, IBAT_MAX_TIMEOUT);\r
++ hr = IBAT::ResolvePath(&addr.Sa, pAddress, &path, INFINITE);\r
+ if (FAILED(hr)) {\r
+ goto out;\r
+ }\r
+diff --git a/trunk/ulp/wsd/user/ibsp_ip.c b/trunk/ulp/wsd/user/ibsp_ip.c
+index 0da0c0e..b0124bb 100644
+--- a/trunk/ulp/wsd/user/ibsp_ip.c
++++ b/trunk/ulp/wsd/user/ibsp_ip.c
+@@ -271,7 +271,7 @@ query_guid_address(
+ \r
+ IBSP_ENTER( IBSP_DBG_HW );\r
+ hr = IbatResolvePath(p_src_addr, p_dest_addr, (IBAT_PATH_BLOB*)&path,\r
+- IBAT_MAX_TIMEOUT);\r
++ INFINITE);\r
+ \r
+ if( hr == S_OK )\r
+ {