> Still need some correction. If the path did not exist previously (i.e, !path
> = TRUE,
> and, below, had_path = 0), then need to call path_free or we will have a leak.
>
True
> Maybe the correct patch is:
> path = __path_find(dev, phdr->hwaddr + 4);
> if (!path || !path->valid) {
> int had_path = 0;
> if (!path)
> path = path_rec_create(dev, phdr->hwaddr + 4);
> else
> had_path = 1;
> if (path) {
> /* put pseudoheader back on for next time */
> skb_push(skb, sizeof *phdr);
> __skb_queue_tail(&path->queue, skb);
>
> if (!path->query && path_rec_start(dev, path)) {
> spin_unlock_irqrestore(&priv->lock, flags);
> if (!had_path)
> path_free(dev, path);
> return;
> } else
> __path_add(dev, path);
> } else {
> ++dev->stats.tx_dropped;
> dev_kfree_skb_any(skb);
> }
This one looks good to me.
Are you going to make a patch and submit it?
I think it would be best if you run the same test on the patched IPoIB before
submission.
Do you agree?
thanks
_______________________________________________
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