Hello,
  patch committed as

Revision: 2962
Author: stansmith
Date: 12:41:10 PM, Thursday, October 07, 2010
Message:
[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 
<[email protected]<mailto:[email protected]>>
----
Modified : /gen1/branches/WOF2-3/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp
Modified : /gen1/branches/WOF2-3/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
Modified : /gen1/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp
Modified : /gen1/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp

________________________________
From: Tzachi Dar [mailto:[email protected]]
Sent: Thursday, October 07, 2010 2:57 AM
To: Smith, Stan; [email protected]
Subject: RE: [patch] fix forwarding of ipoib

Ok, here is the patch again, against the win-ofed tree. Please note that the 
patch is smaller this time only because of white changes that existed in the 
previous patch and not in this one. The problem in applying the patch was very 
likely because of the transfer to html. (this time the patch is also attached).

Please note that we are actually talking here about two things: 1) print that 
is removed (not really related, but I guess that at this scenario we started to 
print...) .2 ) In the case that the scatter gather list was with size 0 we 
remove the extra entry. The braces are there for clarity.

Thanks
Tzachi



Index: ipoib_driver.cpp
===================================================================
--- ipoib_driver.cpp         (revision 2948)
+++ ipoib_driver.cpp      (working copy)
@@ -3178,9 +3178,6 @@
                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;
Index: ipoib_port.cpp
===================================================================
--- ipoib_port.cpp            (revision 2959)
+++ ipoib_port.cpp         (working copy)
@@ -4245,8 +4245,10 @@
                                                
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 +4257,7 @@
                {
                                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++;

From: Smith, Stan [mailto:[email protected]]
Sent: Wednesday, October 06, 2010 10:12 PM
To: Tzachi Dar; [email protected]
Subject: RE: [patch] fix forwarding of ipoib

Hello,
  What's up with posting patches from a source tree which only Mellanox 
employees can see? Please resubmit patch made against winOFED SVN if you want 
reasonable feedback.
Obviously this patch does not apply nor is it even close...

Another issue is posting patches in HTML format email, impossible to 
cut-n-paste; either plain-text or a plain-text patch file attachment - please.

>From what little sense the patch makes without context, it seems to follow 
>what you claim it will do.

Curly braces at ~4250 are not required although they might improve readability 
in this case.

Speaking of code formatting @ 4250, most of the ipoib code uses the following 
if statement format:  'if(<sp>condition<sp>)' why do you deviate?
Also 4260.

Why do I care, for the same reasons the Linux community and Microsoft cares.

The 'return' statement @ ~8709, if this is the end of build_send_desc() then it 
needs to return a value?

grumpy stan.

________________________________
From: [email protected] 
[mailto:[email protected]] On Behalf Of Tzachi Dar
Sent: Wednesday, October 06, 2010 9:42 AM
To: [email protected]
Subject: [ofw] [patch] fix forwarding of ipoib
It seems that we 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.

Thanks
Tzachi

Index: b:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
===================================================================
--- b:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp    
          (revision 6618)
+++ b:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp    
       (revision 6619)
@@ -1154,7 +1154,7 @@
                                return status;
                }
                p_port->ib_mgr.qpn = qp_attr.num;
-
+
                /* Register all of physical memory */
                phys_create.length = MEM_REG_SIZE;
                phys_create.num_ranges = 1;
@@ -4247,8 +4247,10 @@
                                                
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;
                                }
                }
@@ -4257,6 +4259,7 @@
                {
                                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++;
@@ -5219,7 +5222,7 @@
                                                                
p_desc->send_wr[i-1].wr.p_next = &p_desc->send_wr[i].wr;
                                                }
                                }
-
+
                                p_desc->send_wr[p_desc->num_wrs - 1].wr.wr_id = 
(uintn_t)s_buf ;
                                p_desc->send_wr[p_desc->num_wrs - 
1].wr.send_opt |= IB_SEND_OPT_SIGNALED;
                                p_desc->send_wr[p_desc->num_wrs - 1].wr.p_next 
= NULL;
@@ -8708,4 +8711,4 @@
                }
                return;
 }
-#endif
\ No newline at end of file
+#endif
Index: 
b:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp
===================================================================
--- b:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp  
        (revision 6618)
+++ b:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp  
     (revision 6619)
@@ -3178,9 +3178,6 @@
                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;
_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to