From 7a444bfe63c37a53221449487e134b0baa64bd8e Mon Sep 17 00:00:00 2001 From: Stan Smith Date: Thu, 7 Oct 2010 19:41:10 +0000 Subject: [PATCH] [IPoIB_NDIS6_CM] NDIS6 IPOIB had a problem with forwarding packets. The packet would be sent with one fragment size with size 0. The hw would than refuse to send the packet. signed-off-by: Tzachi Dar git-svn-id: svn://openib.tc.cornell.edu/gen1@2962 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86 --- branches/WOF2-3/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp | 5 ----- branches/WOF2-3/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp | 6 +++++- trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp | 5 ----- trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp | 6 +++++- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/branches/WOF2-3/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp b/branches/WOF2-3/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp index 8b6a790f..8052792b 100644 --- a/branches/WOF2-3/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp +++ b/branches/WOF2-3/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp @@ -3178,15 +3178,10 @@ ipoib_send_net_buffer_list( ipoib_port_ref( p_port, ref_send_packets ); cl_obj_unlock( &p_adapter->obj ); - if (NET_BUFFER_LIST_NEXT_NBL(net_buffer_list) != NULL) { - cl_dbg_out("Recieved a list of NBLS ................\n"); - } - for (curr_net_buffer_list = net_buffer_list; curr_net_buffer_list != NULL; curr_net_buffer_list = next_net_buffer_list) { - ++g_NBL; ipoib_cnt_inc( &p_adapter->n_send_NBL ); diff --git a/branches/WOF2-3/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp b/branches/WOF2-3/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp index d7b452e8..1b7a37b3 100644 --- a/branches/WOF2-3/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp +++ b/branches/WOF2-3/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp @@ -4245,8 +4245,11 @@ __send_gen( p_desc->send_wr[0].local_ds[j].length = p_sgl->Elements[i].Length - EthHeaderOffset - DataOffset; p_desc->send_wr[0].local_ds[j].lkey = s_buf->p_port->ib_mgr.lkey; + if( p_desc->send_wr[0].local_ds[j].length > 0 ) + { + j++; + } i++; - j++; break; } } @@ -4255,6 +4258,7 @@ __send_gen( { p_desc->send_wr[0].local_ds[j].vaddr = p_sgl->Elements[i].Address.QuadPart; p_desc->send_wr[0].local_ds[j].length = p_sgl->Elements[i].Length; + CL_ASSERT( p_desc->send_wr[0].local_ds[j].length > 0 ); p_desc->send_wr[0].local_ds[j].lkey = s_buf->p_port->ib_mgr.lkey; i++; j++; diff --git a/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp b/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp index 8b6a790f..8052792b 100644 --- a/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp +++ b/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp @@ -3178,15 +3178,10 @@ ipoib_send_net_buffer_list( ipoib_port_ref( p_port, ref_send_packets ); cl_obj_unlock( &p_adapter->obj ); - if (NET_BUFFER_LIST_NEXT_NBL(net_buffer_list) != NULL) { - cl_dbg_out("Recieved a list of NBLS ................\n"); - } - for (curr_net_buffer_list = net_buffer_list; curr_net_buffer_list != NULL; curr_net_buffer_list = next_net_buffer_list) { - ++g_NBL; ipoib_cnt_inc( &p_adapter->n_send_NBL ); diff --git a/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp b/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp index d7b452e8..1b7a37b3 100644 --- a/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp +++ b/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp @@ -4245,8 +4245,11 @@ __send_gen( p_desc->send_wr[0].local_ds[j].length = p_sgl->Elements[i].Length - EthHeaderOffset - DataOffset; p_desc->send_wr[0].local_ds[j].lkey = s_buf->p_port->ib_mgr.lkey; + if( p_desc->send_wr[0].local_ds[j].length > 0 ) + { + j++; + } i++; - j++; break; } } @@ -4255,6 +4258,7 @@ __send_gen( { p_desc->send_wr[0].local_ds[j].vaddr = p_sgl->Elements[i].Address.QuadPart; p_desc->send_wr[0].local_ds[j].length = p_sgl->Elements[i].Length; + CL_ASSERT( p_desc->send_wr[0].local_ds[j].length > 0 ); p_desc->send_wr[0].local_ds[j].lkey = s_buf->p_port->ib_mgr.lkey; i++; j++; -- 2.41.0