> also
 > initiallize neigh->dgid.raw to have value to compare with.

I don't see this anywhere in the patch you sent?  Here's the whole thing:
(btw only one "L" in "initialize")

 > --- a/drivers/infiniband/ulp/ipoib/ipoib_main.c      2008-12-15 
 > 19:53:16.000000000 +0200
 > +++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c      2008-12-15 
 > 19:53:37.000000000 +0200
 > @@ -687,26 +687,26 @@ static int ipoib_start_xmit(struct sk_bu
 > 
 >              neigh = *to_ipoib_neigh(skb->dst->neighbour);
 > 
 > -            if (neigh->ah)
 > -                    if (unlikely((memcmp(&neigh->dgid.raw,
 > -                                        skb->dst->neighbour->ha + 4,
 > -                                        sizeof(union ib_gid))) ||
 > -                                     (neigh->dev != dev))) {
 > -                            spin_lock_irqsave(&priv->lock, flags);
 > -                            /*
 > -                             * It's safe to call ipoib_put_ah() inside
 > -                             * priv->lock here, because we know that
 > -                             * path->ah will always hold one more reference,
 > -                             * so ipoib_put_ah() will never do more than
 > -                             * decrement the ref count.
 > -                             */
 > +            if (unlikely((memcmp(&neigh->dgid.raw,
 > +                                 skb->dst->neighbour->ha + 4,
 > +                                 sizeof(union ib_gid))) ||
 > +                         (neigh->dev != dev))) {
 > +                    spin_lock_irqsave(&priv->lock, flags);
 > +                    /*
 > +                     * It's safe to call ipoib_put_ah() inside
 > +                     * priv->lock here, because we know that
 > +                     * path->ah will always hold one more reference,
 > +                     * so ipoib_put_ah() will never do more than
 > +                     * decrement the ref count.
 > +                     */
 > +                    if (neigh->ah)
 >                              ipoib_put_ah(neigh->ah);
 > -                            list_del(&neigh->list);
 > -                            ipoib_neigh_free(dev, neigh);
 > -                            spin_unlock_irqrestore(&priv->lock, flags);
 > -                            ipoib_path_lookup(skb, dev);
 > -                            return NETDEV_TX_OK;
 > -                    }
 > +                    list_del(&neigh->list);
 > +                    ipoib_neigh_free(dev, neigh);
 > +                    spin_unlock_irqrestore(&priv->lock, flags);
 > +                    ipoib_path_lookup(skb, dev);
 > +                    return NETDEV_TX_OK;
 > +            }
 > 
 >              if (ipoib_cm_get(neigh)) {
 >                      if (ipoib_cm_up(neigh)) {
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to