[ewg] Re: IB/ipoib: ipoib_ib_post_receive: infinite loop in error path

Shirley Ma xma at us.ibm.com
Fri Feb 8 07:52:51 PST 2008






Thanks Nam. I will fix it along with ipoib_sg_skb_put_frags() optimization.

Thanks
Shirley



                                                                           
             Hoang-Nam                                                     
             Nguyen                                                        
             <hnguyen@                                                  To 
             linux.vne         eli at mellanox.co.il, Shirley                 
             t.ibm.com         Ma/Beaverton/IBM at IBMUS                      
             >                                                          cc 
                               ewg at lists.openfabrics.org,                  
             02/08/08          general at lists.openfabrics.org               
             07:10 AM                                              Subject 
                               IB/ipoib: ipoib_ib_post_receive: infinite   
                               loop in error path                          
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




Hello Eli!
Looked at ipoib code from ofed-1.3-rc4 and the saw the following code
snippet
in ipoib_ib_post_receive():

             if (++priv->rx_outst == UD_POST_RCV_COUNT) {
                         ret = ib_post_recv(priv->qp, priv->rx_wr_draft,
&bad_wr);

                         if (unlikely(ret)) {
                                     ipoib_warn(priv, "receive failed for
buf %d (%d)\n", id, ret);
                                     while (bad_wr) {
                                                 id = bad_wr->wr_id &
~IPOIB_OP_RECV;

ipoib_sg_dma_unmap_rx(priv,

priv->rx_ring[i].mapping);
#1/ipoib_0240_4kmtu.patch: should be priv->rx_ring[id].mapping

dev_kfree_skb_any(priv->rx_ring[id].skb);
                                                 priv->rx_ring[id].skb =
NULL;
#2/ipoib_0220_ud_post_list.patch: missing iterator forwarding, ie bad_wr =
bad_wr->next;
                                     }

                         }
                         priv->rx_outst = 0;
             }

#1: I've talked with Shirley about this.
#2: I thought to have seen you fixed it, but still see it in rc4 after
called
configure script.

Nam

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/ewg/attachments/20080208/9108c87b/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: graycol.gif
Type: image/gif
Size: 105 bytes
Desc: not available
URL: <http://lists.openfabrics.org/pipermail/ewg/attachments/20080208/9108c87b/attachment.gif>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pic06271.gif
Type: image/gif
Size: 1255 bytes
Desc: not available
URL: <http://lists.openfabrics.org/pipermail/ewg/attachments/20080208/9108c87b/attachment-0001.gif>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ecblank.gif
Type: image/gif
Size: 45 bytes
Desc: not available
URL: <http://lists.openfabrics.org/pipermail/ewg/attachments/20080208/9108c87b/attachment-0002.gif>


More information about the ewg mailing list