From: Sean Hefty Date: Mon, 21 Jun 2010 19:06:11 +0000 (-0700) Subject: delete X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=70e73f03e80429cd24b379814b86eba04a44fbd6;p=~shefty%2Frdma-win.git delete --- diff --git a/meta b/meta index 91cedb87..1a4f7035 100644 --- a/meta +++ b/meta @@ -1,9 +1,8 @@ Version: 1 -Previous: 372c29a3d45f655cbc38dc382e6ecd43efd53172 +Previous: 091dc82380941b8655b91319018a0d43c1c880ee Head: 73643c1926aeef6940c0635561bc7534fc084290 Applied: Unapplied: - umad-dbg: 06ac17849b08b8b6d2dcd04d6ee7b4e52311044f errno: 929d92395c4a97ce2b64c42ce2e1a4dcbde17fa4 rm-build: ecb1d23ab7af4d244d1cf424b3274f71c6bec70a port_attr: 6cb488a1a7ddc36e7017499d52152f0267669e02 diff --git a/patches/umad-dbg b/patches/umad-dbg deleted file mode 100644 index 8a1ab071..00000000 --- a/patches/umad-dbg +++ /dev/null @@ -1,185 +0,0 @@ -Bottom: ae012808464ea9bb457205f559fb8944e1e4f435 -Top: 26a8eb25667822a02ed5c2ac67630ce50939747f -Author: Sean Hefty -Date: 2010-06-15 10:28:08 -0700 - -libibumad debugging - - ---- - -diff --git a/trunk/core/al/al_mad.c b/trunk/core/al/al_mad.c -index 4576fa8..52c6940 100644 ---- a/trunk/core/al/al_mad.c -+++ b/trunk/core/al/al_mad.c -@@ -61,6 +61,7 @@ - - #define AL_RMPP_WINDOW 16 /* Max size of RMPP window */ - #define AL_REASSEMBLY_TIMEOUT 5000 /* 5 seconds */ -+#define AL_RMPP_RETRIES 5 - - static void - __cleanup_mad_disp( -@@ -1452,6 +1453,12 @@ __init_send_mad( - return IB_INVALID_SETTING; - } - -+ if( !p_mad_element->timeout_ms ) -+ p_mad_element->timeout_ms = AL_REASSEMBLY_TIMEOUT; -+ -+ if( !h_send->retry_cnt ) -+ h_send->retry_cnt = AL_RMPP_RETRIES; -+ - p_rmpp_hdr->rmpp_version = rmpp_version; - p_rmpp_hdr->rmpp_type = IB_RMPP_TYPE_DATA; - ib_rmpp_set_resp_time( p_rmpp_hdr, IB_RMPP_NO_RESP_TIME ); -diff --git a/trunk/ulp/libibumad/include/infiniband/umad.h b/trunk/ulp/libibumad/include/infiniband/umad.h -index 712d021..f6b41ac 100644 ---- a/trunk/ulp/libibumad/include/infiniband/umad.h -+++ b/trunk/ulp/libibumad/include/infiniband/umad.h -@@ -63,13 +63,13 @@ typedef struct ib_mad_addr - uint8_t gid_index; - uint8_t gid[16]; - -- uint8_t grh_present; -+ uint8_t traffic_class; - uint8_t reserved_grh; - uint16_t lid; - uint8_t sl; - uint8_t path_bits; - uint8_t reserved_rate; -- uint8_t traffic_class; -+ uint8_t grh_present; - - } ib_mad_addr_t; - -diff --git a/trunk/ulp/libibumad/src/umad.cpp b/trunk/ulp/libibumad/src/umad.cpp -index cdf73fd..99a9187 100644 ---- a/trunk/ulp/libibumad/src/umad.cpp -+++ b/trunk/ulp/libibumad/src/umad.cpp -@@ -49,7 +49,6 @@ typedef struct um_port - IWMProvider *prov; - NET64 dev_guid; - OVERLAPPED overlap; -- BOOL pending; - UINT8 port_num; - - } um_port_t; -@@ -548,6 +547,23 @@ size_t umad_size(void) - return sizeof(struct ib_user_mad); - } - -+static void umad_convert_addr(struct ib_mad_addr *addr, WM_MAD_AV *av) -+{ -+ av->VersionClassFlow = htonl((6 << 28) | (((uint32_t) addr->traffic_class) << 20) | -+ (addr->flow_label & 0x000FFFFF)); -+ av->Reserved = 0; -+ av->StaticRate = 0; -+} -+ -+static void umad_convert_av(WM_MAD_AV *av, struct ib_mad_addr *addr) -+{ -+ uint32_t ver_class_flow; -+ -+ ver_class_flow = ntohl(av->VersionClassFlow); -+ addr->flow_label = ver_class_flow & 0x000FFFFF; -+ addr->traffic_class = (uint8_t) (ver_class_flow >> 20); -+} -+ - __declspec(dllexport) - int umad_send(int portid, int agentid, void *umad, int length, - int timeout_ms, int retries) -@@ -562,14 +578,25 @@ int umad_send(int portid, int agentid, void *umad, int length, - mad->retries = (uint32_t) retries; - mad->length = (uint32_t) length; - -+ umad_convert_addr(&mad->addr, &((WM_MAD *) mad)->Address); - hr = ports[portid].prov->Send((WM_MAD *) mad, NULL); -+ umad_convert_av(&((WM_MAD *) mad)->Address, &mad->addr); - if (FAILED(hr)) { -+ _set_errno(EIO); - return GetLastError(); - } - - return 0; - } - -+static void umad_cancel_recv(um_port_t *port) -+{ -+ DWORD bytes; -+ -+ port->prov->CancelOverlappedRequests(); -+ port->prov->GetOverlappedResult(&port->overlap, &bytes, TRUE); -+} -+ - __declspec(dllexport) - int umad_recv(int portid, void *umad, int *length, int timeout_ms) - { -@@ -579,29 +606,25 @@ int umad_recv(int portid, void *umad, int *length, int timeout_ms) - - port = &ports[portid]; - hr = port->prov->Receive(mad, sizeof(WM_MAD) + (size_t) *length, &port->overlap); -- - if (hr == WV_IO_PENDING) { -- if (port->pending && timeout_ms == 0) { -- do { -- hr = WaitForSingleObject(port->overlap.hEvent, 250); -- } while (hr == WAIT_TIMEOUT && port->pending); -- } else { -- hr = WaitForSingleObject(port->overlap.hEvent, (DWORD) timeout_ms); -- if (hr == WAIT_TIMEOUT) { -- return -EWOULDBLOCK; -- } -+ hr = WaitForSingleObject(port->overlap.hEvent, (DWORD) timeout_ms); -+ if (hr == WAIT_TIMEOUT) { -+ umad_cancel_recv(port); -+ _set_errno(EWOULDBLOCK); -+ return -EWOULDBLOCK; - } - } - - if (FAILED(hr)) { -+ _set_errno(EIO); - return -EIO; - } - - if (mad->Length <= (UINT32) *length) { -- port->pending = FALSE; - hr = (HRESULT) mad->Id; -+ umad_convert_av(&mad->Address, &((struct ib_user_mad *) mad)->addr); - } else { -- errno = ENOSPC; -+ _set_errno(ENOSPC); - hr = -ENOSPC; - } - -@@ -618,19 +641,20 @@ int umad_poll(int portid, int timeout_ms) - - port = &ports[portid]; - hr = port->prov->Receive(&mad, sizeof mad, &port->overlap); -- - if (hr == WV_IO_PENDING) { - hr = WaitForSingleObject(port->overlap.hEvent, (DWORD) timeout_ms); - if (hr == WAIT_TIMEOUT) { -+ umad_cancel_recv(port); -+ _set_errno(ETIMEDOUT); - return -ETIMEDOUT; - } - } - - if (FAILED(hr) && hr != ERROR_MORE_DATA) { -+ _set_errno(EIO); - return -EIO; - } - -- port->pending = TRUE; - return 0; - } - -@@ -682,7 +706,6 @@ int umad_register(int portid, int mgmt_class, int mgmt_version, - __declspec(dllexport) - int umad_unregister(int portid, int agentid) - { -- ports[portid].pending = FALSE; - return ports[portid].prov->Deregister((UINT64) agentid); - }