[openib-general] ipoib error handling question

Michael S. Tsirkin mst at mellanox.co.il
Mon Mar 13 02:37:52 PST 2006


Roland, The following code in neigh_add_path looks strange to me:

                neigh->ah  = NULL;
                if (skb_queue_len(&neigh->queue) < IPOIB_MAX_PATH_REC_QUEUE) {
                        __skb_queue_tail(&neigh->queue, skb);
                } else {
                        ++priv->stats.tx_dropped;
                        dev_kfree_skb_any(skb);
                }

                if (!path->query && path_rec_start(dev, path))
                        goto err_list;

It seems that if the queue is full, and path_rec_start fails, we will
double-free the skb. Would it make sense to simply goto err_list if the queue
is full?

-- 
Michael S. Tsirkin
Staff Engineer, Mellanox Technologies



More information about the general mailing list